0
#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配列をfloatのIEEE表現で埋めることであり、完了しました(別の質問のコードを使用しました)が、理解できないことが2つあります。

#define CHAR_BIT 81)正しい出力に使用する必要があるのはなぜですか?

ieee2)配列に正しいビット値を入力するにはどうすればよいですか?

4

1 に答える 1

0

sizeof(float)1)バイト単位のサイズ(これが何であるか)をビット単位のサイズ(これがbitset期待されるもの)に変換する必要があるためです。

2)あなたはすでに正しいビット値をに入れているように私には見えますieee。例を挙げて、なぜそれが間違っていると思うのかを教えてください。

于 2012-10-27T12:44:43.857 に答える