計算機算術
10進数の1.0を、IEEE 754の単精度で表したビット列を16進数で書くとどれか。
- A0x00000001
- B0x3F000000
- C0x3F800000
答えと解説を見る
正解:C. 0x3F800000
1.0 = 1.0 × 2⁰ なので、符号は0、実際の指数は0で指数部は 0 + 127 = 127 = 0111 1111、仮数(先頭の1を除いた部分)はすべて0です。並べると 0 01111111 000…0 となり、4ビットずつ区切ると 0011 1111 1000 0000 … で 0x3F800000 になります。0x00000001は整数の1のビット列で、浮動小数点ではごく小さな非正規化数を表します。0x3F000000は指数部が126で、0.5を表します。
- A. 0x00000001は整数1のビット列で、浮動小数点では非正規化数です。
- B. 0x3F000000は指数部126で、0.5を表します。
- C. 正しい。符号0、指数部127、仮数0で0x3F800000です。