将十进制数转换为64位浮点双精度二进制数?

时间:2018-10-08 08:22:54

标签: c++ binary

所以我有一个代码(从另一个线程)将十进制转换为浮点二进制,问题是它仍然在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位浮点二进制文件?

1 个答案:

答案 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