単精度

単精度の最新ニュースをまとめて検索!

情報処理において、単精度(Single Precision)は、コンピュータ内のあるアドレスのひとつのメモリ単位に数値を格納するコンピュータの数値表現の一種である。単精度数(Single-precision Number)とも呼び、整数固定小数点数浮動小数点数のいずれの定義ともなりうる。

最近のコンピュータでは、単精度は32ビット、倍精度は64ビットで格納される。単精度浮動小数点数(Single Precision Floating Point)はIEEE 754で標準化されており、4バイトで浮動小数点数を表す。

目次

[編集] 単精度浮動小数点数のメモリ上の形式

  • s(符号ビット): 1
  • y(指数部の幅): 8
  • x(仮数部の幅=精度): 24

指数部が全て 0 でない限り、この形式では「暗黙の整数ビット」を 1 とみなす。従って小数部の23ビットだけがメモリフォーマット上に出現する。ビットのレイアウトは以下のようになる。

 syyy yyyy yxxx xxxx xxxx xxxx xxxx xxxx (xすなわち仮数部は23ビットであることに注意)

[編集] 指数部の符号化方式

  • Emin (0x01) = -126
  • Emax (0x7f) = 127
  • 指数部バイアス (0x7f) = 127

指数部バイアスは、エクセスNとも言う。詳しくは符号付数値表現を参照されたい。真の指数値は、指数部の値から指数部バイアスを引いた値となる。

  • 0x00 と 0xff は予約された指数値である。
  • 0x00 は 0非正規化数を表現するのに使われる。
  • 0xff は無限大NaNを表現するのに使われる。

従って、全てのビットパターンが符号として意味がある。

[編集] 単精度浮動小数点数の例(16進表示)

 3f80 0000   = 1
 c000 0000   = -2
 7f7f ffff   ≒ 3.4028234 x 1038  (単精度浮動小数点数の正の最大値)
 3eaa aaaa   ≒ 1/3

(1/3 は倍精度とは異なり、切り上げられる。これは仮数部のビット数が偶数であるため。)

 0000 0000   = 0
 8000 0000   = -0
 7f80 0000   = 正の無限大
 ff80 0000   = 負の無限大

[編集] MSXの場合

MSX-BASICの場合、同様に4バイトで表すが、IEEE 754とは異なり

  • s(符号ビット): 1
  • y(指数部の幅): 7
  • x(仮数部の幅=精度): 24
 syyy yyyy xxxx xxxx xxxx xxxx xxxx xxxx

であり、指数部をバイナリ、仮数部をBCDで表現する。 そのため、有効数字は正確に10進で6桁で、指数は±63乗である。

ちなみに、同時期の8ビットパソコンは多くがBCDではなく2進での演算であった。

[編集] 関連項目

最終更新 2009年7月9日 (木) 18:13 (日時は個人設定で未設定ならばUTC)。
【単精度】変更履歴

ご利用上の注意

もっと調べる!