浮点到二进制的转换

Floating point to binary conversion

本文关键字:转换 二进制      更新时间:2023-10-16

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

int foo;
cin >> foo;
bitset<32> my_bit(foo);

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

实际上,bitset构造函数在C++03中接受unsigned long,在C++11中接受unsigned long long。现在,对于在bitset中存储float,这应该可以做到:
float f = 0.0f;
cin >> f;
bitset<32> my_bit(*(uint32_t*)&f); // my_bit? What kind of a name is that, anyway?..