SC情報処理安全確保支援士試験 午前Ⅰ

平成21年度秋期 情報処理安全確保支援士 午前Ⅰ 問1

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

2進数の表現で、 2の補数を使用する理由はどれか。

選択肢

  1. ア
    値が1のピット数を数えることで、 ビット誤りを検出できる。
  2. イ
    減算を、 負数の作成と加算処理で行うことができる。
  3. ウ
    除算を、 減算の組合せで行うことができる。
  4. エ
    ピットの反転だけで、 負数を求めることができる。
解き方のヒントを見る

引き算を「足し算の回路」でそのまま計算するための、ずるい負数表現

「2の補数」を使うと、コンピュータは A - B という引き算を、A + (-B) という足し算として計算できるようになるよ。これによって、引き算専用の回路(減算器)を作らなくても、足し算用の「加算器」だけで全て計算できてエコなんだ。

この問題で問われていること

「引き算(減算)を足し算(加算)の回路だけで処理できるようにするための工夫」という、2の補数が持つ一番大きなメリットを答えよう。

2 の補数の利点

2 の補数を使うと、A - B を A + (-B) として扱えます。これにより、加算器を中心に減算処理までまとめて実装しやすくなります。

減算 A - B\n= A + (-B)\n-> 加算回路で処理可能

確認ポイント

  • 1 の個数を数える説明は誤り検出方式の話です。
  • ビット反転だけでは 2 の補数にならず、1 を足す必要があります。
  • 「演算回路をどう共通化できるか」で考えましょう。
正解と解説を見る

正解

イ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。1のビット数を数えて誤りを見つけるのは、パリティチェックの話だよ。入場者数が偶数か奇数かを見て、誰かが紛れ込んだかをざっくり確認する仕組みに近いね。2の補数を使う理由である“引き算を足し算で処理しやすくする”話とは別物だよ。

選択肢イ(正解)

これは正解だよ。2の補数を使うと、「A−B」を「A+(Bの負数)」として計算できるんだ。レジで返金処理を別の機械でやらずに、同じ会計窓口で“マイナス金額の商品”を足して処理する感じだよ。足し算の仕組みを使い回せるのが大きな理由だね。

選択肢ウ

これは不正解だよ。除算を何度も引き算して考えること自体はできるけど、それは2の補数を使う特別な理由ではないんだ。ケーキを何回も切り分ければ人数分にできる、という話であって、“この包丁を選ぶ理由”にはなっていない感じだよ。

選択肢エ

これは不正解だよ。2の補数で負数を作るには、ビットを反転したあとに1を足す必要があるんだ。服を裏返すだけでは外出準備が完了せず、最後にボタンを留める必要がある、みたいな感じだね。ビット反転だけで負数になるのは主に1の補数の考え方だよ。

出典:独立行政法人 情報処理推進機構(IPA)平成21年度秋期 情報処理安全確保支援士試験 午前Ⅰ 問1(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針