単精度実数
Single-precision real number
名古屋工業大学
先進セラミックス研究センター
井田 隆
名古屋工業大学 環境材料工学科 3 年次授業「マテリアルデザイン」の講義ノートです。
文字サイズ:
拡大
縮小
元に戻す
前へ
上へ
次へ
第1部 コンピュータの基礎
Fundamentals about Computer
第4章 数値計算
Numerical calculation
4−1 数の表現
Expression of numbers
4−1−2 単精度実数
Single-precision real number
コンピュータ内部での整数の表現のしかたは,使用する bit 数によって何種類かある以外には,ほとんど決まっています。
ところが,コンピュータ内部で実数をどのように表現するかには異なる規格があります。現在の主流は IEEE 規格(アイ・トリプル・イーきかく)となっています。なお,コンピュータを使って複素数の計算をすることもできるのですが,複素数をどのように表現するかについては,一般的な規格は今のところないと考えて良いでしょう。
1985 年くらいまでは 32 bit = 4 byte で一つの実数を表現するのが普通でした。4 byte で表現される実数のことを単精度実数と呼びます。
32 bit で表される単精度実数の各 bit がどのように割り当てられているかを以下の表に示します。
符号 signal,指数部 exponent,仮数部 fraction の3つの部分に割り当てられています。
bit |
0 |
1 |
2 … 7 |
8 |
9 |
10 … 30 |
31 |
記号 |
s |
e1 |
e2 … e7 |
e8 |
f2 |
f3 … f23 |
f24 |
意味 |
符号 |
指数部 |
仮数部 |
指数部は 8 bit なので,0 から 255 の値を表す事ができるはずですが,
1 ≤ (
e1×27
+ e2×26
+
…
+ e8
) ≤ 254
の範囲の値の場合には
|
±
|
(
|
1 + f2 ×
|
1
|
+ f3 ×
|
1
|
+ … + f24 ×
|
1
|
)
|
2 |
4 |
223 |
× 2
|
(
e1 × 27
+ e2 × 26
+
…
+ e8 − 127
)
|
|
という数を表す事とされています。この形式で表される数のことを正規化数 normalized number と呼びます。
指数部が,
(
e1×27
+ e2×26
+
…
+ e8
) = 0,
つまり
(e1e2…e8) = (00…0)
となる場合には
|
±
|
(
|
f2 ×
|
1
|
+ f3 ×
|
1
|
+ … + f24 ×
|
1
|
)
|
2 |
4 |
223 |
|
という数を表すこととされています。この形式で表される数のことは非正規化数 denormalized number と呼ばれます。
指数部が,
(
e1×27
+ e2×26
+
…
+ e8
) = 255,
つまり
(e1e2…e8) = (11…1)
となる場合は特別扱いになっており,
s = 0,
( f2 f3 … f24 ) = (00…0)
のとき
x = +∞
s = 1,
( f2 f3 … f24 ) = (00…0)
のとき
x = −∞
( f2 f3 … f24 ) ≠ (00…0)
のとき
x = NAN
とされます。ここで
NAN
は非数 (Not A Number) を表します。
正規化数では指数部(127 を差し引いた値)が −126 から 127 の値をとることができますから,正規化数の中で絶対値の最も小さい数は
±1 × 2−126 = ± 1.17549 × 10−38
絶対値の最も大きい数は
|
(
|
1 +
|
1
|
+
|
1
|
+
…
+
|
1
|
)
|
2 |
4 |
223 |
|
となります。
非正規化数の中で絶対値の最も小さい数は
となります。
前へ
上へ
次へ
2005年10月26日公開
2013年4月30日更新