計算機算術

x がNaNのとき、多くのプログラミング言語で x == x を評価した結果はどれか。

  1. A真
  2. B偽
  3. C例外が起きてプログラムが必ず停止する
答えと解説を見る

正解:B. 偽

IEEE 754では、NaNは「数ではない」値なので、どんな値との比較でも等しくならず、NaN自身との比較でも x == x は偽になります(x != x は真)。この性質を使って、x != x でNaNかどうかを判定する書き方も使われますが、通常は専用の関数(isnanなど)を使います。NaNは 0 ÷ 0 や ∞ − ∞ などから生まれ、そのあとの計算にも広がっていきます。比較で例外が起きて止まるのは既定の動作ではありません。

  • A. NaNどうしは等しいとみなされません。
  • B. 正しい。NaNは自分自身とも等しくなりません。
  • C. 比較で必ず停止するわけではありません。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. IEEE 754の単精度で、指数部がすべて1(255)のビット列が表すものの説明として正しいものはどれか。
  2. IEEE 754の浮動小数点数で、+0と−0についての説明として正しいものはどれか。
  3. IEEE 754で既定の丸めの方法として定められているものはどれか。
  4. 最近接偶数丸めで整数に丸めるとき、2.5 と 3.5 はそれぞれいくつになるか。
  5. ほぼ等しい2つの浮動小数点数を引き算したとき、有効な桁が大きく減ってしまう現象を何と呼ぶか。