−0

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

-0(マイナスゼロ)、あるいは負のゼロとは、数値のゼロにマイナスの符号をつけたものである。

通常の算術では、負のゼロは正のゼロである+0と同一であると見なされるが、両者を分けて考える方が望ましい場合や、分けて考えざるを得ない場合がある。

そのようなケースとして、以下のものがある

最初のものについては片側極限の項目、最後のものは負温度の項目を参照。 本項ではそれ以外の2つのケースについて取り扱う。


なお、負のゼロと同種の理由で、正のゼロである「+0」と符号のないゼロである「0」を区別しなければならない場合もあるが、本項ではこの問題については割愛し、 「+0」と「0」を同一視する。

数値表現としての負のゼロ[編集]

数値表現において符号の概念をゼロにも適用した結果として負のゼロが生じる場合がある。

例えば整数をN進法で表現する場合、ゼロ以外の数は、

  • +(数値)
  • -(数値)

のいずれかの形に一意に表現できる。 しかしゼロのみは

  • +0
  • -0

の二種類の表現が可能であるため、負のゼロの問題が生じる。

この事が原因で、0のみ例外処理が必要になる場合がある。

例えば2つの数値

  • A=(符号1)(数値1)
  • B=(符号2)(数値2)

が等しいかどうかを判定するために以下のようなプログラムを書くとバグを作り込むこととなる:

  • if(符号1と符号2が等しく、数値1も数値2と等しい)
    • 「A=B」と出力
  • else
    • 「A≠B」と出力

このプログラムにA=+0、B=-0を代入すると、本来は「A=B」を出力しなければならないはずだが、両者の符号が異なることが原因で「A≠B」を出力してしまう。

このように負のゼロは、プログラムにおいてバグの原因になってしまうので、慎重に取り扱う必要がある。

この種の問題の根本的解決としては、そもそも負のゼロが生じない数値表現を選ぶ、という方法があるが、他の問題との兼ね合いによっては、必ずしもこれが最良な解決になるとは限らない。

コンピューターでは補数を利用して負数を表現することが多いが、同じ補数でも基数の補数を利用した場合には負のゼロが生じないのに対し、減基数の補数を用いた場合には負のゼロが生じる。

IEEE 754における負のゼロ[編集]

現在多くのコンピュータやプログラミング言語がサポートしている浮動小数点数の標準である IEEE 754 には通常の 0と -0 がある。

詳細はIEEE 754における負のゼロの項目を参照。

数値計算における負のゼロ[編集]

気象学では、-0度は 0度(華氏または摂氏)より低いが -1度とするほどではない温度を示し、統計的な意味(つまり1度単位で統計を取る場合)では重要なこともある。例えば、-0.2度がその例である。0度は負の範囲を含まないのでこれを 0度として統計処理することはできない。しかし、冬季の寒さを比較する際に日中の気温が 0度未満(氷点下)の日を数えることは基本であり、無視することができない。従って -1度に丸めるには絶対値が小さすぎる温度は -0度 と記録される。道路上などに設置してある気温・路温計でもそれを見ることが出来る。

脚注[編集]

参考文献[編集]

関連項目[編集]