вывод числа с плавающей точкой в двоичном виде
Подскажите, как можно адаптировать такой код для обработки дробных числел с несколькими знаками после точки. К примеру -32.000001230001. Или возможно есть более подходящее решение вместо bitset?
#include <iostream>
#include <bitset>
#include <climits>
int main() {
long double num = 32;
std::cout << std::bitset<sizeof(num) * CHAR_BIT>(num) << "\n";
}
Ответы (1 шт):
Автор решения: HMS_TRINIDAD
→ Ссылка
Если я правильно понял задачу - как вариант:
float a = 32;
char *s = reinterpret_cast<char*>(&a);
cout << bitset<8>(s[3]) << endl;
cout << bitset<8>(s[2]) << endl;
cout << bitset<8>(s[1]) << endl;
cout << bitset<8>(s[0]) << endl;
Насчет порядка вывода элементов массива char - почитайте little endian. Надеюсь, не написал чепуху и не ввёл никого в заблуждение...