Advertisement
DPOH-VAR

Untitled

Jul 3rd, 2020
1,210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. // Example program
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5.  
  6. union Data { // структура, объединяющая float и байтовый массив
  7.     float f;
  8.     unsigned char c[4];
  9. };
  10.  
  11. void bitValue(char*, float);
  12. int main(){
  13.   char result[32];
  14.   float value = 3.14;
  15.   cin >> value;
  16.   bitValue(result, value);
  17.   cout << "binary value = " << result;
  18. }
  19.  
  20. void bitValue(char* chars, float value){
  21.     Data data {}; // создаем структуру
  22.     data.f = value; // инициализируем ее значением типа float
  23.     for (int i=0; i<4; i++){ // для каждого из байтов
  24.         for (int j=0; j<8; j++){ // для каждой позиции в байте
  25.             char c = '0'; // символ c будет со значением '0' или '1'
  26.             // смещаем байт вправо побитово и проверяем его делимость на 2
  27.             if ((data.c[i] >> (7-j)) % 2) c = '1';
  28.             chars[i*8 + j] = c; // записывем результат обратно в переданную строку
  29.         }
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement