ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
浮動小数点の演算で広く用いられている、数値表現の標準仕様。実際の数値の表現方法のほかに、特殊な値、丸め、例外などを規定している。
これを著している時点での最新版は、2008(平成20)年に制定されたIEEE 754-2008である。
IEEE 754-2008は、元々の規格IEEE 754-1985に、基数に依存しない浮動小数点演算の規格IEEE 854-1987を融合して作られた。IEEE 754-2008には、従来の2進数形式(単精度、倍精度)の他に、10進数の形式が規定されている。
IEEE 754に準拠する、という意味では、このうちのどれか一つ以上に対応すれば良い。
2または10を基数とする、任意の有限数を扱うことができる。
基数b、符号s(0で+、1で−)、仮数部m、指数部eとすると、数値は、次の式で表現される。
(−1)s × m × be
仮数mと指数eの長さが異なる複数の形式が用意されており、それぞれで扱える数値の範囲、精度などが異なる。
同じ値を複数の形式で表現可能だが、そのうち一つを正規化数、それ以外を非正規化数という。
eが全ビット1で、mの最上位ビットを除いた値が1以上の時、NaNである。この場合でもsが有効なため、NaNには+NaNと−NaNが存在する。
更に、NaNにはQuiet NaNとSignaling NaNがあり、mの最上位ビットが0ならSignaling ±NaN、1ならQuiet ±NaN、である。いずれの場合も、mの余剰ビットを用いて情報の伝達をすることが可能。
16ビット長、32ビット長、64ビット長、128ビット長での表現方法が規定されている。
IEEE 754-2008では標準形式(Basic formats)、算術形式(Arithmetic formats)、交換形式(Interchange formats)があり、最低限、標準形式には対応せねばならない。
名称 | 基数 | 指数長 | 仮数長 | |
binary16 | 半精度 | 2 | 5ビット | 10ビット |
binary32 | 単精度 | 2 | 8ビット | 23ビット |
binary64 | 倍精度 | 2 | 11ビット | 52ビット |
binary128 | 四倍精度 | 2 | 15ビット | 112ビット |
decimal32 | 10 | 7桁 | ||
decimal64 | 10 | 16桁 | ||
decimal128 | 10 | 34桁 |
このうち、binary16とdecimal32は標準形式ではなく、主として(短いビット長での)値の保存用として規定されている。
16ビット長、32ビット長、64ビット長、128ビット長、いずれの交換形式においても、一般的には最上位ビット(MSB)に符号(s)を置き、次に指数e、下位に仮数mを置く。
例えば、単精度(binary32)であれば、次のようになる。
1 8 23 +-+--------+-----------------------+ |S| Exp | Fraction | +-+--------+-----------------------+ 31 30 23 22 0
Sが符号部、Expが指数e、Fractionが仮数mである。
この場合のExpは8ビットだが、127を加算し、−126〜+127を、1〜254で表現している。Exp=0とExp=127は特殊な値の表現に使われるため、通常の値には利用できない。
なお、倍精度(binary64)の場合も同様に、Expは11ビットなので1023を加算する。
10進の場合、表現方法が複雑である。
2進の場合と同様に、符号s、指数e、仮数mで表わすことは同様だが、仮数mが10進になっている。更に、1桁でも多く詰め込むようにするため、仮数部はBCDではなく、特殊な形式を採用している。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます