可能的重复:
C++ 中浮点数转换为二进制 https://stackoverflow.com/questions/2746380/float-to-binary-in-c
我想在 C++ 中打印出浮点数的二进制表示形式。不太实用,只是出于好奇。
但以下程序无法编译。 reinterpret_cast 失败。我可以使用什么样的强制转换才能执行“ &(1
#include <iostream>
using namespace std;
void toBinary(float num) {
int numi = reinterpret_cast<int>(num);
cout << num << " " << numi << endl;
for (int i = 0; i < 8 * sizeof(num); i++){
if (numi & (1<<i)) {
cout << 1;
} else {
cout << 0;
}
}
cout << endl << endl;
}
int main() {
float a;
cout << sizeof(int) << " " << sizeof(float) << endl;
a = 13.5;
toBinary(a);
toBinary(13.9);
toBinary(2 * a);
toBinary(-a);
}
有一个更简单的方法。获取一个指向 float 的指针,并将其reinterpret_cast 为指向 char 的指针。现在循环遍历 sizeof(float) 并将每个字符转换为 8 个二进制数字。此方法也适用于双打。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)