計算機算術
IEEE 754の浮動小数点数で、+0と−0についての説明として正しいものはどれか。
- A−0は表せず、0は必ず+0だけになる
- B+0と−0は比べると等しくないので、if文で区別できる
- C両方あり、等しいと比べられるが、割り算で違いが出る
答えと解説を見る
正解:C. 両方あり、等しいと比べられるが、割り算で違いが出る
浮動小数点数は符号ビットが独立しているので、符号だけが違う+0と−0の2つの0があります。比べると等しいとみなされますが、1 ÷ (+0) は+∞、1 ÷ (−0) は−∞になるように、一部の演算では結果が変わります。−0は、ごく小さな負の数がアンダーフローしたときなどに現れ、どちら側から0に近づいたかの情報を残します。等しいと比べられるので、普通の比較では区別できず、区別するには符号ビットを調べます。
- A. −0も表せます。
- B. 比べると等しいので、普通の比較では区別できません。
- C. 正しい。等しいと比べられますが、割り算などで違いが現れます。