2019年3月27日水曜日

浮動小数点形式はエクセルでこそ力を発揮する

 浮動小数点形式の数は「a×10b」と表す。たとえば、10進数の 123 を浮動小数点形式で表すと 1.23×102 となる。また、2進数も浮動小数点形式で表すことができる。10進数の 123 を2進数で表すと 1111011 となるが、これを2進数の浮動小数点形式にすると 1.111011×10110 となる。なお、この場合は、指数の部分も2進数表示したものだから、「×10110」はつまり「×26」のことである。
 a を仮数部といい、b を指数部という。要するに、仮数部 a が数字の並びを表し、指数部 b が位取りを表すということだ。a が数の精度を表し、b が大きさを表すといってもよい。
 さて、コンピュータ内部では2進数で処理しているが、エクセルでは数を仮数部と指数部に分けて認識している。具体的には、仮数部に(符号も含めて)52ビット、指数部に(符号も含めて)12ビットを割り当て、合わせて64ビット(=8バイト)を使って1つの数を表現している(「倍精度」の場合)。
1.0101…0101×10101…010
  └ 仮数部 ┘ └指数部┘
  52ビット   12ビット
※ 仮数部の先頭(整数部分)は必ず 1 なので、無視する。

 仮数部に52ビット割り当てた結果として10進数で15ケタまで正確に計算できる(→詳細は こちら)ことになる。また、指数部に12ビット割り当てた結果として10進数で 10300 のような大きな数や 10−300 のような細かい数も扱える(→詳細は こちら)ことになるというわけだ。


 →  →  →  →  → 

0 件のコメント:

コメントを投稿