単精度浮動小数点数
符号ビットを sign、バイアスつきの指数部を e、23ビットの仮数部の各ビットを b-n とすると、32ビットの binary32 フォーマットで表される数値は ( − 1 ) sign ( 1. b − 1 b − 2 . . . b − 23 ) 2 × 2 e − 127 {\displaystyle (-1)^{\text{sign}}(1.b_{-1}b_{-2}...b_{-23})_{2}\times 2^{e-127}} となり、より正確に表現すると value = ( − 1 ) sign ( 1 + ∑ i = 1 23 b − i 2 − i ) × 2 e − 127 {\displaystyle {\text{value}}=(-1)^{\text{sign}}\left(1+\sum _{i=1}^{23}\ b_{-i}2^{-i}\right)\times 2^{e-127}} となる。
仮数部は 100011 となる(小数点より右側だけを仮数とする)。
したがって、IEEE 754 binary32 フォーマットで 12.375 を表すと 0-10000010-10001100000000000000000 = 41460000H となる。
注: 68.123 を IEEE 754 binary32 フォーマットで表す場合を考えてみよう。上述の技法を適用すると 42883EF9H というビット列が得られ、最後の4ビットは 1001 となる。しかし、IEEE 754 のデフォルトの丸め方式により最終的に 42883EFAH となり、最後の4ビットは 1010 となる。
例: 十進の1を変換すると ( 1 ) 10 = ( 1.0 ) 2 × 2 0 {\displaystyle (1)_{10}=(1.0)_{2}\times 2^{0}} となる。ここから次のことが導かれる。
指数は 0 である(バイアスを加えるので 127 = 0111 1111 となる)。
仮数は 0 である(小数点より右側はゼロなので仮数部のビット列は全てゼロになる)。
従って実数 1 を IEEE 754 binary32 フォーマットで表すと 0-01111111-00000000000000000000000 = 3f800000H となる。
例: 0.25 を変換すると、 ( 0.
MSX-BASICの演算ルーチンMATHPACKの場合、同様に4バイトで表すが、IEEE 754とは異なり
s(符号ビット): 1
y(指数部の幅): 7
x(仮数部の幅): 24
であり、指数部をバイナリ、仮数部をBCDで表現する。 そのため、有効数字は正確に10進で6桁で、指数は±63乗である。 他のパソコンのBASICはほとんどが2進での演算であった(他にBCDを採用した機種としてFP-1000がある)。
2進小数の主な利点は高速性とメモリ消費にあり、BCD小数の主な利点は現実の10進小数を誤差なく扱える事にあったと言ってよい。 2進小数は原理上0.5や0.25、0.375といったn/(2^m)以外の値、つまり0.1や0.