HOME > コンピュータ科学基礎

第2種情報処理平成12年春問05

問 題

 2進数 10110101 の8けたの2の補数はどれか。


 ア 01001010

 イ 01001011

 ウ 10110100

 エ 10110110


解 説

難易度 ★
解答

 イ 01001011


長 池「今日は基本的な問題をやってみよう。」

ユウト「あっ、2進数ですね。これ苦手です。」

長 池「普段生活している中で2進数を意識することってあまりないよね。
    でも、コンピュータは人間と違って0と1が理解しやすいんだ。」

ユウト「そうですか。ちょっとコンピュータの気持ちになってみます。」

長 池「よし。ユウトがコンピュータになったところで、早速解いてみよう。」

ユウト「はい。(コンピュータにはなってませんが。。。)」

長 池「この問題のキーワードはズバリ『2の補数』だね。」

ユウト「2の補数ってなんですか?」

長 池「やっぱり、初めはそこでひっかかっちゃうんだよね。
    でも、理解するのはその後でもいいから、まず2の補数の求め方は、
    『反転させて1を加える』と覚えておこう。」

ユウト「(強引だなぁ~)それではやってみますね。

    10110101
    ↓反転します。
    01001010
    ↓1を加えます。
    01001011

    できました。答えは01001011ですか?」

長 池「そうだね。正解。選択肢でいうとイだね。
    どうだい。簡単だろう。」

ユウト「はい。それは簡単ですが、2の補数って何か分からないんですが。」

長 池「知りたいかい?」

ユウト「はい。」

長 池「よし分かった。それじゃ簡単に説明するよ。
    その前に、問題文の10110101と正解の01001011を足してごらん。」

ユウト「はい。

    10110101
   +01001011
     ̄ ̄ ̄ ̄
    100000000

    桁上がりして、100000000となりました。」

長 池「そうだね。8桁だと00000000だね。よく覚えておいて。」


 ◇補数 とは。。。

  与えられた数を定められた数から引いた数のことです。

  簡単に10進数を例にとって説明します。

  2桁の10進数42(与えられた数)があります。

  2桁の10進数42の9の補数は、99-42=57
  2桁の10進数42の10の補数は、100-42=58
  

  それでは、同じように8桁の2進数でやってみましょう。

  8桁の2進数10110101の1の補数は、01001010
  8桁の2進数10110101の2の補数は、01001011

  多くのコンピュータで負数を2の補数で表しています。
  それにより、減算を加算処理で行うことができるようになります。


長 池「2の補数の求め方は覚えたかな?」

この分野の 《問題一覧》

第2種情報処理平成12年春問05

ソフトウェア開発平成13年問01