IEEE標準形式(単精度)による浮動小数点数値の表現が16進数で、
(40A80000)16と (C0300000)16であるとき、この2つの積の16進数表記として、
最も適切なものはどれか。
IEEE標準形式では、浮動小数点数値 f = ( -1 )S×( 1.M )×2(E-127)は、
下図のように構成されている。 ここで、符号部Sは0で正を、1で負を表し、
指数部Eは127を加えて表し、仮数部Mは1.Mとなるように正規化されている。
MSB LSB
┌─┬─────┬───────────────┐
│S│ E │ M │
└─┴─────┴───────────────┘
1ビット 8ビット 23ピット
@ (40200000)16
A (414F0000)16
B (41670000)16
C (C14F0000)16
D (C1670000)16
(40A80000)16を2進数で表すと、
0100 0000 1010 1000 0000 0000 0000 0000。
これは、S=0、E=129、1.M=1.3125 だから、
浮動小数点数値は
(-1 )0× 1.3125 × 2(129-127) = 1.3125×4=5.25
(C0300000)16を2進数で表すと、
1100 0000 0011 0000 0000 0000 0000 0000。
これは、S=1、E=128、1.M=1.375 だから、
浮動小数点数値は
(-1 )1× 1.375 × 2(128-127) = -1.375×2=-2.75
5.25 × (-2.75) = -14.4375 = -1.8046875*8
これは、S=1、E=130、1.M=1.8046875 だから
1100 0001 0110 0111 0000 0000 0000 0000。
従って答えは、(C1670000)16
EXCELのマクロのご相談なら ファーストマクロ へ
タグ:浮動小数点