IEEE754 による浮動小数点数では、ゼロなどの特殊な値は以下の表1のように決められています。
表 1 : IEEE754 の特殊な値
値 | 符号部 | 指数部 | 仮数部 |
---|---|---|---|
+0 | 0 | 全て 0 | 全て 0 |
-0 | 1 | 全て 0 | 全て 0 |
+Infinity (+無限大) | 0 | 全て 1 | 全て 0 |
-Infinity (-無限大) | 1 | 全て 1 | 全て 0 |
NaN (Not A Number: 数でない) | 0と1どちらでも可 | 全て 1 | 0 以外 |
+-Infinity は、例えばゼロ以外の数字をゼロで割ろうとすると演算結果として出てきます。
また NaN は、例えばゼロをゼロで割ろうとしたり、虚数(-1のルート)を求めようとしたりすると演算結果として出てきます。
演算の途中で一度 Infinity や NaN が現れるとそれ以降の演算結果は全て Infinity や NaN になりますのでなかなか厄介な存在です。