IEEE754-1985では,2つの基本形式(basic format),単精度(single precision)および倍精度(double precision)と, 2つの拡張形式,拡張単精度(single extended)および拡張倍精度(double extended)の合計4種類の形式を定義している. [注:現実に使われているCPUでは,単精度と倍精度の2つだけか,拡張倍精度を加えた3つの形式だけしかサポートしていないため, 規格では合計4つの形式が規定されていることは一般的にはあまり知られていません. 具体的にはPowerPCは単精度と倍精度の2形式,Intel x86系CPUが単精度・倍精度・拡張倍精度の3種類の形式をサポートしています. インテルはx86で実装している拡張倍精度のことを単に拡張精度(extended precision)と呼んでいるようです. 4種類の形式をサポートしているCPUは見たことないです.]
ただし,基本形式(単精度・倍精度)については,仮数部・指数部のビット数など細かな部分まで明確に規定されているが, 拡張精度については,たとえば拡張単精度なら仮数部のビット数が32ビット以上,指数部のビット数が11ビット以上のように幅をもたせた定義になっており, 具体的なビット数の決定は実装者にまかされている. したがって,拡張精度については,たとえば拡張倍精度をサポートしている2つの処理系で まったく同じ計算した結果が違っているということが起こりうることを留意しておかなければならない.
形式 | 符号部 | 指数部 | 仮数部 | 指数部バイアス | 全ビット数 | ||
---|---|---|---|---|---|---|---|
単精度 | 1 | 8 | 23 (+1) | +127 | 7F | 32 | (4 bytes) |
倍精度 | 1 | 11 | 52 (+1) | +1023 | 3FF | 64 | (8 bytes) |
拡張倍精度(x86) | 1 | 15 | 64 (+0) | +16383 | 3FFF | 80 | (10 bytes) |