1. 問題の内容
IEEE 754単精度浮動小数点数表現において、-10.375をメモリ上でどのように表現するかを段階的に問う問題です。
2. 解き方の手順
(1) -10.375の絶対値の2進数表現を求める。
10.375を整数部と小数部に分けて考えます。
整数部10は2進数で1010です。
小数部0.375は、 (0)、 (1)、 (1)なので、0.011となります。
したがって、10.375の2進数表現は1010.011です。
(2) 2進数を正規化する。
1010.011を正規化すると、 となります。
(3) 正規化した指数部のnの値を求める。
正規化された数の指数部は3です。
(4) 符号ビットsの値を求める。
-10.375は負の数なので、符号ビットは1です。
(5) バイアス表示した指数部eの値を10進数の整数で示す。
IEEE 754単精度浮動小数点数では、指数部にバイアスがかけられます。バイアス値は127です。したがって、指数部の値はとなります。
(6) バイアス表示した指数部eを8ビット2進数で示す。
130を2進数で表すと10000010です。
(7) 仮数部fの最上位バイトを示す。
仮数部は正規化された数の小数点以下の部分です。上記の例では010011です。
仮数部の全体は23ビットなので、後ろに0を補って23ビットにします。仮数部は01001100000000000000000となります。
最上位バイトは最初の8ビットなので01001100です。
(8) 仮数部fは最上位バイトの後に何ビット0が続くか。
仮数部の最上位バイト01001100の後に続く0は7ビットです。0000000
(9) 単精度浮動小数点表示の上位2バイトを示す。
単精度浮動小数点数は、符号ビット(1bit)、指数部(8bit)、仮数部(23bit)の合計32bitで表されます。
符号ビットは1です。指数部は10000010です。仮数部の最初の15ビットは010011000000000です。
したがって、全体の上位2バイト(16ビット)は、11000001 00100110です。
3. 最終的な答え
-10.375dの絶対値を2進数で表せ: 1010.011
これを正規化しなさい:
正規化した指数部のnの値は?: 3
符号ビットsの値は?: 1
バイアス表示した指数部eの値を10進数の整数で示せ: 130
バイアス表示した指数部eを8ビット2進数で示せ: 10000010
仮数部fの最上位バイトを示せ: 01001100
仮数部fは最上位バイトの後に何ビット0が続くか: 7
単精度浮動小数点表示の上位2バイトを示せ: 11000001 00100110