簡體   English   中英

將十進制數轉換為64位浮點雙精度二進制數?

[英]a decimal number into 64 bit floating point double precision 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位浮點二進制文件?

template <std :: size_t N>
類位集;

這是在頭文件中定義位集的方式。 因此,如果您想要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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM