所以我有一个代码(从另一个线程)将十进制转换为浮点二进制,问题是它仍然在32位中。
#include <iostream>
#include <bitset>
using namespace std;
int main() {
union {
float input;
int output;
} data;
float x;
cin>>x;
data.input = x;
bitset<sizeof(float) * CHAR_BIT> bits(data.output);
cout << bits << endl;
}
如何将其更改为64位浮点二进制文件?
答案 0 :(得分:0)
模板
类位集;
这是在头文件中定义位集的方式。因此,如果您想要64位。只需在位集中输入64。 bitset <64>将为您所需的输入提供64位输出。
这是修改后的代码:
#include <iostream>
#include <bits/stdc++.h>
#include <bitset>
using namespace std;
int main() {
union {
float input;
int output;
} data;
float x;
cin>>x;
data.input = x;
bitset<64> bits(data.output);
cout << bits << endl;
}
输入
2.25125
输出:
0000000000000000000000000000000001000000000100000001010001111011
在线编译器链接: http://cpp.sh/832cr