浮点数到二进制的转换

Floating point to binary conversion

我正在进行一个使用 IEEE 754 格式将任何实数转换为二进制的项目。
我的第一个尝试是使用 bitset 库类型来转换数字,然后我可以担心将整个数字分成符号位、指数和尾数。

int foo;
cin >> foo;

bitset<32> my_bit(foo);

事实证明,bitset 只能处理 signed 个整数。
我如何包含浮点数?
我可以使用另一种像 bitset 一样简单的库类型来完成我的任务吗?

实际上,bitset constructor accepts unsigned long in C++ 03 and unsigned long long in C++ 11。 现在,至于将 float 存储在 bitset 中,这应该可以解决问题:

float f = 0.0f;
cin >> f;
bitset<32> my_bit(*(uint32_t*)&f); // my_bit? What kind of a name is that, anyway?..