10進数の $-0.125$ をIEEE754単精度浮動小数点数形式(符号部1ビット、指数部8ビット、仮数部23ビットの合計32ビット)で表現する問題です。各部を2進数で表したり、全体を16進数で表現したり、また、0や無限大を表現する場合を問う問題です。
2025/5/26
1. 問題の内容
10進数の をIEEE754単精度浮動小数点数形式(符号部1ビット、指数部8ビット、仮数部23ビットの合計32ビット)で表現する問題です。各部を2進数で表したり、全体を16進数で表現したり、また、0や無限大を表現する場合を問う問題です。
2. 解き方の手順
(1) IEEE形式の基数は何か:
IEEE754では、基数は2です。
(2) IEEE倍精度浮動小数点形式は何ビットか:
IEEE倍精度浮動小数点形式は64ビットです。
(3) 10進数の を2進数で表す:
まず、 を2進数に変換します。
なので、 となります。
したがって、 の2進数表現は です。
(4) (3)で求めた2進数の数値を指数表記で表す(ただし整数部が1となるように正規化する):
(5) 符号部(1ビット)を2進数表記する:
負の数なので、符号ビットは1です。
(6) 指数部(8ビット)を2進数表記する:
指数部は、 で求められます。
単精度浮動小数点数では、バイアスは127です。
真の指数は なので、 となります。
を2進数で表すと、 です。
(7) 仮数部(23ビット)を2進数表記する:
正規化された仮数部は、 の小数点以下(つまり0)を23ビットで表します。
したがって、 となります。
(8) 符号部、指数部、仮数部を合わせて16進数表記する:
符号部: 1
指数部:
仮数部:
全体を結合すると、 となります。
これを4ビットずつ区切って16進数に変換します。
(9) IEEE単精度浮動小数点形式で、0を表すとき、16進数表記する:
0を表す場合は、すべてのビットが0になります。
したがって、
(10) IEEE単精度浮動小数点形式で、無限大を表すとき、16進数表記する:
無限大を表す場合は、指数部のすべてのビットが1で、仮数部のすべてのビットが0になります。
正の無限大の場合:符号ビットは0、指数部は、仮数部はすべて0。
負の無限大の場合:符号ビットは1、指数部は、仮数部はすべて0。
3. 最終的な答え
(1) 2
(2) 64
(3) -0.001
(4) -1.0 x 2^(-3)
(5) 1
(6) 01111000
(7) 00000000000000000000000
(8) B8000000
(9) 00000000
(10) FF800000(負の無限大) / 7F800000 (正の無限大)