NaNやInfなどの特殊な値

NaN(Not-A-Number;非数)やInf(無限大)などの特殊な値には以下の4種類がある.

クラス(種類) 符号部 指数部 仮数部 個数
非数 NaN * 11..1 ≠00..0 たくさん存在する
無限大 Inf * 11..1 00..0 +Infと-Infの2種類が存在する
非正規化数 Denormal * 00..0 ≠00..0 たくさん存在する
ゼロ Zero * 00..0 00..0 +0と-0の2種類が存在する

以下,それぞれの特殊な値について詳細を説明する. […と いいたいところだけど,まだ書けてないです.]

NaN

指数部がオール1で仮数部が0でない. 符合は+/-どちらでもよい.

NaNには,Signaling NaN(SNaN)とQuiet NaN(QNaN)の2種類がある.

Inf

指数部がオール1で仮数部が0. 符合が+のときは+Inf,-のときは-Inf.

非正規仮数(denormalized numbers)

指数部がオール0で仮数部が0でない.数値は精度が落ちるけども有効と考えられ,次の値となる.

単精度(-1)s×0.f×2-126
倍精度(-1)s×0.f×2-1022

ゼロ(zeros)

指数部がオール0で,仮数部も0. 符合はどちらでもよく,+のときは+0,-のときは-0となる.


はたいたかし
2004-01-19 初稿
2006-10-30 改訂3
トップ > 開発ツール > IEEE 754 浮動小数点演算