[英]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.