【ITパスポート試験】2進数の引き算は「2の補数」を足し算する

  • URLをコピーしました!
目次

【ITパスポート試験】2進数の引き算は「2の補数」を足し算する

普段使いなれている10進数であれば、簡単な足し算・引き算で答えに詰まることはありません。では2進数で[0110+0011]はいくつ?と聞かれたら、慣れていないため答えに詰まってしまいます。

しかし、10進数でも2進数でも足し算・引き算の基本は変わりありません。下位の桁から順に繰り上がってくる数を考慮しながら、各桁ごとに合計を出します。桁が上がったり下がったりするときの数が異なるくらいです。

コンピュータには「引き算」がない?

足し算に続いて、引き算はどうしたらよいのかというと、コンピュータには「引き算」という概念がありません。そのためこのように考えます。

5-3→5+(-3) 

つまり引き算を知らなくても、「負の数」を表現することができれば、足し算の回路だけで両方できるようになるのです。

負の数の表し方

負の数の表し方は多数ありますが、もっとも単純なのは「先頭の1ビットは符号にする」という方法です。

しかしこの方法だと、足しても0になりません。そこで「補数」という方法でやってみます。

補数は「補う数」で2種類ある

補数とは、言葉の通り「補う数」という意味です。補数の種類には、
その桁数での最大値を得るために補う数
次の桁に繰り上がるために補う数

の2つがあります。

10進数の数字を例に補数を考えてみます。

①で得られた876を「9の補数」、②で得られた877を「10の補数」と呼びます。

続いて2進数でも同様に補数を求めてみます。

2進数の場合は、①で得られた1100を「1の補数」、②で得られた1101を「2の補数」といいます。

この2つの補数を使って、先ほどの10進数「3+(-3)」を2進数でやってみます。

3+(2の補数)を足し算すると、当たり前ですが桁上がりした数になります。この時、8ビットからあふれた9ビット目を無視して、8ビット部分だけ見れば全部0になります。

このように、ある数値に対する2の補数表現は、そのままその数値の負の値として使えるというわけです。このことから、コンピュータは負の数を表すのに2の補数を使います。

2の補数の表し方

2の補数は、次のようにすると簡単に、求めることができます。

①全てのビットを反転させる(0と1を入れ替える)
②それに1を加算すると、「2の補数」が出ます。

2進数の引き算は「2の補数」を足し算する まとめ

  • 2進数の足し算は、桁上がりの数以外は10進数と変わらない
  • コンピュータには「引き算」の概念が無いため、「負の数」を足すことで表現する。
  • コンピュータは負の数を表すのに、元の数を足したときに桁上がりする「補数」を使う。

【ITパスポート試験】過去問題練習と解説

2進数の演算-1(H29年秋期)

問:二つの2進数01011010と01101011を加算して得られる2進数はどれか。ここで、2進数は値が正の8ビットで表現するものとする。

ア:00110001

イ:01111011

ウ:10000100

エ:11000101

出典:ITパスポート試験ドットコム

2進数の演算-2(H21年秋期)

問:2進数10110を3倍したものはどれか。

ア:111010

イ:111110

ウ:1000010

エ:10110000

出典:ITパスポート試験ドットコム
よかったらシェアしてね!
  • URLをコピーしました!
目次