0除算
読み:ゼロじょざん
外語:zero division
割る数
(除数)を
0
とした
除算
のこと。ある数値を0で割ること。
目次
数学
未定義
未定義の理由
コンピューター
演算
x86の場合
数学
未定義
これを式にすれば、a
÷
0となるが、しかし数学においてこの式は未定義である。
従って、この式の答えは「解無し」となる。
未定義の理由
a÷0=xである時、もしaが0以外なら、xがどのような数であってもこの式を満たすことはできないので、不能である。
また逆にaが0なら、xがどのような数であってもこの式が成立するため、不定となる。
分かり易く言えば、割った答えに0を掛けても元の数には戻らない。それは解では無いのである。
コンピューター
演算
コンピュータープログラムにおいては、0除算は
例外
あるいは
バグ
の一つである。
CPUの計算機を使う整数演算と、そのコプロセッサーとなるFPUを使う実数演算(浮動小数点演算)とで、挙動は異なる。それぞれの動きは、プロセッサーごとに異なっている。
プログラミングを行なう際、処理に割り算がある場合に割る数のチェックを行なえば防げるバグであるが、このチェック処理は忘れがちである。
x86の場合
x86
からPentium、Coreシリーズまでは、次のように動作する。
整数演算 ‐
0除算例外
を発生させる
実数演算 ‐ +∞、-∞、
NaN
のいずれかの値を返す
FPUはコプロセッサーであるためか、FPUで0除算が行なわれてもCPU本体にシグナルは発生しない。
x86シリーズ初のFPU、8087の仕様は、その後
IEEE 754
となった。IEEE 754準拠の実装では、a÷0で、a>0なら+∞、a<0なら-∞、a=0なら
NaN
(非数値)、とする取り決めがある。但しこの結果は、数学的には誤りだろう。
再検索