仮数
From Wikipedia, the free encyclopedia
123.456 78 という数について、仮数部を整数で表すと、仮数は12345678、指数は −5 となる。したがってその値は次の式で表される(指数表記)。
- 12 345 678 × 10−5
同じ値を正規化表現することもできる。この場合、仮数を 1.2345678 という小数で表し、指数を +2 とする。
- 1.234 5678 × 10+2
同じ値を言語独立算術規格で指定されたフォーマットで表現することもできる。Ada、C言語、FORTRAN、Modula-2 などがこの規格に従っている。JIS X 0210-1986(情報交換用文字列による数値表現)では、この形を「正規形」と呼称している[1]。
- 0.123 456 78 × 10+3
なお、第9回 CGPM(1948,決議7)[2]及び第22回 CGPM(2003,決議10)[3]により、小数部を3桁ごとにスペースで区切るのが通例である[4]。
仮数と hidden bit
二進法で浮動小数点数を表す場合、仮数は二進数で表され、その桁数(つまりビット幅)が特徴となる。常に正規化されるため、仮数の最上位ビットは常に1となるので、一般にはそのビットを格納せず "hidden bit" や「けち表現」などと呼ぶ。仮数のビット幅を数える際、この hidden bit を加える場合と加えない場合がある。例えば、IEEE 754 の倍精度形式は、hidden bit を含めるか否かによって仮数のビット幅を53ビットと言ったり、52ビットと言ったりする。hidden bit があるのは二進表現の場合のみである。IEEE 754 は精度 p を仮数の桁数と定義しており、その際に暗黙の前置されるビットも含むとしている(例えば、倍精度形式の精度 p は 53 である)。
ちなみに、x87の内部表現に用いられる80ビット拡張倍精度浮動小数点数の仮数部は、他の形式と異なりケチ表現ではない。
