計算機算術

符号なしの整数どうしの足し算で、結果が表せる範囲を超えた(桁あふれした)ことを判定する方法として正しいものはどれか。

  1. A結果の最上位ビットが1になったかどうかを見る
  2. B2つの入力の最上位ビットが等しいかどうかを見る
  3. C最上位のビットから外へ桁上げが出たかどうかを見る
答えと解説を見る

正解:C. 最上位のビットから外へ桁上げが出たかどうかを見る

符号なしの足し算では、最上位のビットからさらに上へ桁上げが出たとき、結果がビット数で表せる最大値を超えています。CPUではこの桁上げがキャリーフラグとして残るので、それを調べれば判定できます。結果の最上位ビットが1になるのは、単に大きな数になっただけで桁あふれではありません。最上位ビットへの桁上げと最上位ビットからの桁上げの違いを見るのは、符号付きの数のオーバーフローの判定方法です。

  • A. 最上位ビットが1でも、範囲内の大きな数のことがあります。
  • B. 入力の最上位ビットを比べるだけでは判定できません。
  • C. 正しい。最上位からの桁上げ(キャリー)で判定します。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. 浮動小数点数で、隣り合う表せる値どうしの間隔についての説明として正しいものはどれか。
  2. IEEE 754の単精度の浮動小数点数で、0から始めてすべての整数を正確に表せる上限はどれか。
  3. 金額の計算で、2進数の浮動小数点数ではなく、最小の単位(1円や1セント)を1とする整数で扱うことが多い主な理由はどれか。
  4. AIの混合精度の学習で、計算の多くをFP16やbfloat16で行いながら、重みの元の値(マスターウェイト)をFP32で保持しておく主な理由はどれか。
  5. 8ビットのうち下位4ビットを小数部とする固定小数点(符号なし)で、ビット列 0011 1000 が表す値はいくらか。