вывод числа с плавающей точкой в двоичном виде

Подскажите, как можно адаптировать такой код для обработки дробных числел с несколькими знаками после точки. К примеру -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. Надеюсь, не написал чепуху и не ввёл никого в заблуждение...

→ Ссылка