浮点数到二进制的转换
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?..
我正在进行一个使用 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?..