計算機算術

信号処理で使われる飽和演算の説明として正しいものはどれか。

  1. A結果が表せる最大値を超えたら、反対側に回り込ませずに最大値にとどめる
  2. B結果が最大値を超えたら、自動的にビット数を増やして正確な値を保つ
  3. C結果が最大値を超えたら、0に戻してやり直す
答えと解説を見る

正解:A. 結果が表せる最大値を超えたら、反対側に回り込ませずに最大値にとどめる

通常の整数の演算では、最大値を超えると桁あふれで最小値の側に回り込み、例えば8ビット符号付きで 127 + 1 は −128 になります。音声や画像でこれが起こると、最も明るい点が急に暗くなるような大きな誤差になります。飽和演算では、最大値を超えたら最大値(127)、最小値を下回ったら最小値(−128)にとどめるので、誤差が小さく抑えられます。DSPやSIMDの命令に用意されています。ビット数を増やしたり0に戻したりはしません。

  • A. 正しい。回り込ませずに最大値や最小値にとどめます。
  • B. ビット数は固定のままです。
  • C. 0に戻すと、かえって大きな誤差になります。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. 桁上げ先見加算器で使う、各桁の生成信号 g と伝搬信号 p の定義(a、bはその桁の入力)と、上の桁への桁上げ c(i+1) の式の組み合わせとして正しいものはどれか。
  2. 乗算器で多数の部分積を足し合わせるのに、桁上げ保存加算器が使われる主な理由はどれか。
  3. 高速な乗算器で使われるウォレスツリーの特徴として正しいものはどれか。
  4. 乗算器で基数4のブースのアルゴリズム(ブース符号化)を使う主な効果はどれか。
  5. 符号なしの8ビットの数どうしを掛けたとき、結果を桁あふれなく表すのに必要なビット数はどれか。