Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

浮動小数点数の表現方法 (2) (IBM エクセス 64 方式の場合)

さて、スタンダードコースの方が先生から聞いたという浮動小数点数についての説明を聞くと、 IEEE754 方式とはどうも噛み合いません。
特に「指数部の値が 1 増えると小数点の位置が 2 進数で 4 桁右に動く」とかいうあたりが謎です。もっともこの仕様は、仮数部のビット幅が 4 の倍数になっていれば 16 進数で内容を書き下せるので楽っちゃ楽なんですが……。
で、この「小数点の位置が 4 桁単位で動く(表す値が 16 倍、 1/16 になる)」というのは、 IBMメインフレームで使われていたという「エクセス 64 方式」でも使われていたそうです(【週刊】 基本情報技術者 浮動小数点攻略(1) より)。
で、この方式の利点として思いつくものとしては、次のようなものがあります。

  • 仮数部の内容を 16 進数で書き下せる
  • 有効桁数を犠牲にして、表現できる数の範囲を広くできる

なお、正規化を行っても仮数部の最上位ビットが 1 になる保証はない、ということには注意すべきです。 IEEE754 方式のような隠れビットもありません。