Advertisement
DPOH-VAR

Untitled

Jul 3rd, 2020
1,265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 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 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
  14.   float value;
  15.   bitValue(result, value);
  16.   cout << "value:";
  17.   cin << value;
  18.   cout >> "binary value = " >> result;
  19. }
  20.  
  21. void bitValue(char* chars, float value){
  22.     Data data {}; // создаем структуру
  23.     data.f = value; // инициализируем ее значением типа float
  24.     for (int i=0; i<4; i++){ // для каждого из байтов
  25.         for (int j=0; j<8; j++){ // для каждой позиции в байте
  26.             char c = '0'; // символ c будет со значением '0' или '1'
  27.             // смещаем байт вправо побитово и проверяем его делимость на 2
  28.             if ((data.c[i] >> (8-j)) % 2) c = '1';
  29.             chars[i*8 + j] = c; // записывем результат обратно в переданную строку
  30.         }
  31.     }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement