アットウィキロゴ

7.実数表現③

(復習)10進数11.17をIBM単精度実数に直せ。
(解答) 整数部分は、11=B_{(16)}である。
  0.17×16=2.72
  0.72×16=11.52
  0.52×16=8.32
  0.32×16=5.12
  0.12×16=1.92
  0.92×16=14.72
    ・・・                  これより、小数部分は、0.2\dot{B}851\dot{E}となる。 
  以上から、B.2\dot{B}851\dot{E} となる。
ゆえに、B.2\dot{B}851\dot{E}=0.B2\dot{B}851\dot{E}\times16^1となり、
 指数は、E=1となるので、指数部は1+64=65で、2進数に直すと、=1000001となる。
 符号は正の数だから、先頭1ビットは0。ゆえに、先頭の8ビットは、01000001=41_{(16)}である。
 仮数部は16進6桁で、7桁目は「7捨8入」する。
 これより、B2B852となり、2つ合わせて「41B2B852」が答えである。

②IEEE754方式の実数表現

単精度実数(4バイト)と倍精度実数(8バイト)は次のように構成される。(16進1桁=4ビット、である。)
符号 指数部 仮数部 全体
単精度実数 1ビット 8ビット(Bias=127) 23ビット 4バイト(32ビット=16進8桁)
倍精度実数 1ビット 11ビット(Bias=1023) 52ビット 8バイト(64ビット=16進16桁)
なお、仮数部ではみ出した部分は2進数で「0捨1入」を行う。
符号部分は、「0」なら0または正の数、「1」なら負の数を表す。

IEEE754方式の特徴

1.基数B=2
   表示形式は、\pm M\times2^E である。
2.隠しビット
3.仮数部ではみ出した部分は、2進数で「0捨1入」する。

隠しビット

 IEEE754は、基数が2なので、2進表示にして、「1.△△△」の形に直して(正規化)、「1.」の部分を省略して
仮数部を「△△△」で表す。これを「隠しビット」という。
 IEEE754では、仮数部は23ビットだが、隠しビットにより24ビットの精度を保つ。

(例) 10進数0.1=0.1\dot{9}_{(16)}である。
 0.1=0.1\dot{9}_{(16)}=0.0001\dot{1}00\dot{1}_{(2)}
     =1.\dot{1}00\dot{1}\times2^{-4}
となるので、E=-4, M=\dot{1}00\dot{1} が得られる。

(例題) 10進数11.17をIEEE754方式の単精度実数で表す。
上の問題より、11.17=B.2\dot{B}851\dot{E}であるので、
   =1011.0010\ \dot{1}011\ 1000\ 0101\ 0001\ 111\dot{0}
   =1.0110\ 010\dot{1}\ 0111\ 0000\ 1010\ 0011\ 11\dot{0} \times 2^3
であるので、
  符号ビット=0
  指数部=3+127=130=1000\ 0010_{(2)}
  仮数部=0110\ 0101\ 0111\ 0000\ 1010\ 0011 (先頭から24ビット)
      =0110\ 0101\ 0111\ 0000\ 1010\ 010 (24ビット目を0捨1入する)
であるので、まとめると、
  0\ 1000\ 0010\ 0110\ 0101\ 0111\ 0000\ 1010\ 010=4132B852_{(16)}となる。

最終更新:2011年11月17日 08:47