倍精度実数
Double-precision real number

名古屋工業大学
先進セラミックス研究センター
井田 隆

名古屋工業大学 環境材料工学科 3 年次授業「マテリアルデザイン」の講義ノートです。

前へ 上へ 次へ


第1部 コンピュータの基礎
Fundamentals about Computer

第4章 数値計算
Numerical calculation

4−1 数の表現
Expression of numbers

4−1−3 倍精度実数
Double-precision real number

1980 年代以降,64 bit = 8 byte で一つの実数を表現するのが普通となりました。8 byte で表現される実数のことを倍精度実数と呼びます。 64 bit で表される倍精度実数の各 bit がどのように割り当てられているかを以下の表に示します。ビット数が拡張されている以外には,前節の単精度実数とまったく同様です。

bit 0 1 2 … 10 11 12 13 … 62 63
記号 s e1 e2e10 e11 f2 f3f52 f53
意味 符号 指数部 仮数部

指数部は 11 bit なので,0 から 2047 の値を表す事ができるはずですが, 1 ≤ ( e1×210 + e2×29 + … + e11 ) ≤ 2046 の範囲の値の場合には

x =
± ( 1 + f2 × 1 + f3 × 1 + … + f53 × 1 )
2 4 252
× 2 ( e1 × 210 + e2 × 29 + … + e11 − 1023 )
(4,1.3)

という数を表し,この形式で表される数が倍精度実数での正規化数です。

指数部が, ( e1×210 + e2×29 + … + e11 ) = 0, つまり (e1e2e11) = (00…0) となる場合には

x =
± ( f2 × 1 + f3 × 1 + … + f53 × 1 )
2 4 252
× 2 − 1022
(4,1.4)

という数を表し,この形式で表される数が倍精度実数での非正規化数です。

指数部が, ( e1×210 + e2×29 + … + e11 ) = 2047, つまり (e1e2e11) = (11…1) となる場合は,

s = 0, f2 f3 … f54 ) = (00…0) のとき x = +∞

s = 1, f2 f3 … f54 ) = (00…0) のとき x = −∞

f2 f3 … f54 ) ≠ (00…0) のとき x = NAN

とされます。ここで NAN は非数 (Not A Number) を表します。

倍精度実数の正規化数では指数部(1023 を差し引いた値)が −1022 から 1023 の値をとれるので,正規化数の中で絶対値の最も小さい数は

±1 × 2−1022 = ± 2.22507 × 10−308

絶対値の最も大きい数は

±
( 1 + 1 + 1 + … + 1 )
2 4 252
× 2 1023
= ± 1.79769 × 10 308

となります。

倍精度実数の非正規化数の中で絶対値の最も小さい数は

±  1 × 2 −1022 = ± 4.94066 × 10−324
252

となります。


前へ 上へ 次へ

2005年10月26日公開
2013年4月30日更新