-0
出典: フリー百科事典『ウィキペディア(Wikipedia)』
−0は負のゼロの表現であり、情報処理における整数のある種の符号付数値表現や多くの浮動小数点数表現に存在する。数学用語では負のゼロという概念はなく、−0は0と等価である。科学では −0 は 0 より小さいが −1 まで丸めるには絶対値が小さすぎる量を意味する。統計力学では、逆転分布状態の系において熱力学温度が −0 と見なされる場合がある。
0に対する左極限を表す表記 x→0-0 は x→-0 と略記できる。
ちなみに、『マイナス・ゼロ』は広瀬正の小説の題名である。
[編集] 表現法
1+7ビットの符号-仮数部表現の整数では、負のゼロは二進数で 10000000 と表現される。8ビットの1の補数表現では、負のゼロは二進数で 11111111 と表される。IEEE754浮動小数点数では、負のゼロは指数部と仮数部がゼロで符号ビットが 1 で表現される。
IBMの General Decimal Arithmetic という符号化仕様(十進記数法による浮動小数点数の表現)では、負のゼロの指数部は任意の正規の値で、仮数部は全てゼロであり、符号ビットが 1 で表される。
現在一般的な2の補数を使用した符号付整数表現では負のゼロは存在せず、それがこの表現が一般化した理由の1つである。
[編集] 属性と操作
C、C#、C++、Javaなどのプログラミング言語において、式を評価した結果として(例えば負数での算術アンダーフローの結果として)負のゼロを得る場合もあるが、負のゼロと正のゼロを比較すると等しい。従って、単純な比較ではその数が負のゼロであるかどうかをテストできない。
代わりに、IEEE754によって定義されたCopySign()
関数は、0の符号を別の0でない数にコピーすることができる。
除算演算子も正のゼロと負のゼロを区別するために使用できる。
- x / +0 = +∞ (xが正の場合)
- x / −0 = −∞ (xが正の場合)
負のゼロに関わる他の演算は以下の通りである。
- −0 / x = −0 (xが正の場合)
- −0 / x = +0 (xが負の場合)
- +0 / x = −0 (xが負の場合)
- −0 / +∞ = −0
- −0 / -∞ = +0
- +0 / -∞ = −0
- −0 × -0 = +0
- −0 − +0 = −0
- -0 − −0 = +0
- +0 + −0 = +0
- −0 + −0 = −0
- x × −0 = −0 (xが正の場合)
[編集] 科学的用法
気象学では、−0は 0度(華氏または摂氏)より低いが −1度とするほどではない温度を示し、統計的な意味(つまり1度単位で統計を取る場合)では重要なこともある。例えば、−0.2度がその例である。0度は負の範囲を含まないのでこれを 0度として統計処理することはできない。しかし、冬季の寒さを比較する際に日中の気温が 0度未満の日を数えることは基本であり、無視することができない。従って −1度に丸めるには絶対値が小さすぎる温度は −0度 と記録される。
統計力学関連の文脈で、0ケルビン未満の絶対温度(負の絶対温度)を持っている系を記述することも可能だが、直観とは逆にこれは極めて冷たいことを示すのではなく、いかなる正の絶対温度よりも熱いことを示している。この文脈では −0度は最も高い温度である。
カテゴリ: コンピュータのデータ | プログラミング | 整数