絶対値の大きな数値や小数点以下の数値を表現する場合には, 浮動小数点 表現または 実数 表現と呼ばれる符号化を用います.
浮動小数点表現 の基本的な考え方は,指数表現の応用にあります. たとえば,物理や化学で用いられるアボガドロ定数は 6.0221367×1023 [mol-1] とされています. この 6.0221367 の部分を 仮数 ,-23 の部分を 指数 と呼ぶことにします. 浮動小数点表現は,仮数,指数,正負を表す符号(1ビット),の3種類を, それぞれビット列で表現する方法です.
浮動小数点表現としては, IEEE (The Institute of Electrtical and Electronics Engineers) の定めた IEEE 754 という規格が広く用いられています. IEEE 754 では,32ビット で表現する 単精度 と 64ビット で表現する 倍精度 が規定されています. 単精度と倍精度では,32ビット(第0〜31ビット)と64ビット(第0〜63ビット)を, それぞれ次のようなビット列に分けて表現します.
符号部 | 指数部 | 仮数部 | |
---|---|---|---|
単精度(32ビット) | 第0ビット(計1ビット) | 第1〜8ビット(計8ビット) | 第9〜31ビット(計23ビット) |
倍精度(64ビット) | 第0ビット(計1ビット) | 第1〜11ビット(計11ビット) | 第12〜63ビット(計52ビット) |
IEEE 754 では,このビット列を次のようにします.
(-1)符号部×(1.仮数部)(2)×2(指数部-bias)
ただし bias は, 指数を負にする,すなわち小数点以下の数を表現するためのもので. 単精度での場合 127,倍精度の場合 1023という値になります. IEEE 754 には, さらに細かい規定(たとえば指数部のビットがすべて0か1の場合の意味など) がありますが,ここでは省略します.
例として 6.0221367×10-23 という数を単精度浮動小数点表現にしてみます.
6.0221367×10-23 = (-1)0×1.1375495×2-74
なので,符号部は 0,指数部は -74 + 127 = 53 = 00110101(2) です.
仮数部は 1.1375495 = 1.00100011001101100111001(2) となります.
よって浮動小数点表現は
00011010100100011001101100111001
となります.
19.3.2 負の整数 | 19.3.3 浮動小数点 | 19.3.4 精度と範囲 | ||
発展項目をスキップ | 19.4 符号化 | |||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Sun, 30 Oct 2005 14:26:14 JST (1370d) |