我正在开发一个使用IEEE 754格式将任何实数转换为二进制的项目
我的第一个试验是使用bitset
库类型来转换数字,然后我可以担心将整数分成符号位,指数和尾数。
int foo;
cin >> foo;
bitset<32> my_bit(foo);
事实证明,bitset
仅适用于signed
个整数
如何包含浮点数?
我可以使用与bitset
一样简单的其他库类型来完成我的任务吗?
答案 0 :(得分:2)
实际上,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?..