next up previous
Next: この文書について... Up: 4 浮動小数点数 (floating-point numbers) Previous: その他の実数表現法

IEEE Standard 754

浮動小数点数については、IEEE(アメリカ電気電信技術者協会のこと)の規 格が、有名かつ重要である。特に 1985 年に公表された P754 という 2進浮動 小数点数演算規格は、現在のパソコン、ワークステーションのマイクロプロセッ サーに広く採用されているので、特に微妙な計算を必要とする場合は、規格を 学ぶ価値がある。この規格では、$\infty$ 等の NAN (not-a-number, 非数)、 不正規化数の導入、例外処理等の工夫がある。(もちろんデータの可搬性も保 証される。)

IEEE 単精度
指数 8, 仮数 24 最小の非正規数 1.401e-45 最小の正規数 1.175e-38 最大の数 3.403e+38 b31(符号 s), b30..b23(指数 e),b22..b0(仮数部 f) (implicit MSB があるので、仮数部は実質 24 bits) 正規数値 ($0 < e < 255$)

\begin{displaymath}(-1)^s \times 2^{e-127} \times 1.f\end{displaymath}

非正規数値 ($e = 0$)

\begin{displaymath}(-1)^s \times 2^{e-126} \times 0.f\end{displaymath}

符号つきの $0$ ($e = 0$)

\begin{displaymath}(-1)^s \times 0\end{displaymath}

符号つきの $\infty$ ($e=255$)

\begin{displaymath}s=u; e=255; f=.000\cdots000\end{displaymath}

非数 ($e=255$) シグナルを発生するもの

\begin{displaymath}s=u; e=255; f=.0uuu\cdots uuu\quad\hbox{少なくとも $1$ bit は $0$ でない}\end{displaymath}

シグナルを発生しないもの

\begin{displaymath}s=u; e=255; f=.1uuu\cdots uuu\end{displaymath}

IEEE 倍精度
指数 11, 仮数 53 最小の非正規数 4.941e-324 最小の正規数 2.225e-308 最大の数 1.798e+308 b63(符号 s), b62..b52(指数 e),b51..b0(仮数部 f) (implicit MSB があるので、仮数部は実質 53 bits) 正規数値 ($0 < e < 2047$)

\begin{displaymath}(-1)^s \times 2^{e-1023} \times 1.f\end{displaymath}

非正規数値 ($e = 0$)

\begin{displaymath}(-1)^s \times 2^{e-1022} \times 0.f\end{displaymath}

符号つきの $0$ ($e = 0$)

\begin{displaymath}(-1)^s \times 0\end{displaymath}

符号つきの $\infty$ ($e=2047$)

\begin{displaymath}s=u; e=2047; f=.000\cdots000\end{displaymath}

非数 ($e=2047$) シグナルを発生するもの

\begin{displaymath}s=u; e=2047; f=.0uuu\cdots uuu \quad\hbox{少なくとも $1$ bit は $0$ でない}\end{displaymath}

シグナルを発生しないもの

\begin{displaymath}s=u; e=2047; f=.1uuu\cdots uuu\end{displaymath}

NaN
- Not a Number の略。日本語では非数と訳される。
denormalized number (非正規数)
subnormal number の古い言い方。
subnormal number (非正規数)
この規格では、下駄ばき表現の指数が 0 になっている、ゼロでない浮動 小数点数のこと。
exception(例外)
算術例外とは、ある算術演算を試みた時に、一般的に受け入れられる結果 が生成されないことを意味する。
gradual underflow (漸近的アンダーフロー)
浮動小数点演算がアンダーフローした時、0 の代わりに非正規化数を返すこと。
IEEE 例外
大きい数×大きい数 +Inf オーバーフロー
大きい数×(-大きい数) -Inf オーバーフロー
正数/0.0 +Inf 0 除算
負数/0.0 -Inf 0 除算
0.0/0.0 NaN 演算不可能
小さい数/大きい数 非正規化数 アンダーフロー
2.0/3.0 丸めが起こる 結果不正確
IEEE 拡張倍精度
指数 15, 仮数 64
IEEE 4 倍精度
指数 15, 仮数 113 最小の非正規数 6.475e-4966 最小の正規数 3.362e-4932 最大の数 1.190e+4932

next up previous
Next: この文書について... Up: 4 浮動小数点数 (floating-point numbers) Previous: その他の実数表現法
桂田 祐史
2012-05-28