IEEE 754
交換形式は固定長のビット列での浮動小数点数の交換や記録を意図した形式である。
二進浮動小数点数用に、16/32/64ビットにくわえて32の倍数で128ビット以上の交換形式が定義されている。16ビット形式(半精度)は、グラフィック用途など小さな値の交換または記憶に用いることが想定されている。
二進交換形式の符号化方式は IEEE 754-1985 と同じである。先頭に符号ビット1ビットがあり、それに w ビットの「バイアス」された指数部が続き、さらに p−1 ビットの仮数部が続く。全体で k ビットの形式の場合、指数部のビット数は w = floor(4 log2(k))−13 で得られる。ただし、64ビットと128ビットの形式ではこれで正しいが、16ビットと32ビットの形式では指数部にこの式で得られる値(それぞれ3と7)よりも多いビット(それぞれ5と8)が割り当てられている。
指数部も仮数部も符号無しの二進整数であることに注意されたい(指数部は 0 – 255)。
最も一般的な正規化数では、exponent はバイアスされた指数であり、fraction は仮数の小数点以下の部分である。先ほどの(−1) × c × bと対応づけると次のようになる。
s = sign
q = exponent − emax (ここではemax = 127であり、換言すれば、指数に127を加算して格納されている。「127でバイアス」しているとも言う)
b = 2
c = 1.fraction
正規数においてcは1以上2未満のため、常に1.xxx...と表記できる。このため、fractionにはxxx...の部分のみを格納し、実質1ビット多い24ビット精度を実現している。これはけち表現(economized form)と呼ばれる。
なお、1 − emax = −126 が単精度における正規化数の最小の指数である。
正規化数以外の場合
非正規化数の場合q = −126で、cが 0.fraction とする。(qは−127 ではない。仮数の小数点以上の部分が0になっている関係で、指数を−126としてバランスをとっている。)
ゼロは二種類存在する。+0(sが0)と−0(sが1)である。