簡體   English   中英

用位集中的位填充int數組。

[英]Filling an int array with bits in a bitset.

#define CHAR_BIT 8
union
{
     float input;   // assumes sizeof(float) == sizeof(int)
     int   output;
}    data;

data.input = 122.5;

bitset<sizeof(float) * CHAR_BIT>   bits(data.output);

int ieee[32];
for(int i = 0 ; i < 32 ; ++i){
    ieee[i] = (int)bits[i];
}

我的意圖是用浮點數的IEEE表示填充ieee數組,並完成了操作(我使用了另一個問題的代碼),但是有兩點我不理解:

1)為什么必須使用#define CHAR_BIT 8才能獲得正確的輸出?

2)如何用正確的位值填充ieee數組?

1)因為您需要將以字節為單位的大小(即sizeof(float)是)轉換為以位為單位的大小(即bitset期望的大小)。

2)在我看來,就像您已經將正確的位值放入ieee 你能舉一個例子,並說出為什么會認為是錯誤的。

暫無
暫無

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

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