2進数のひき算をする方法を教えてください。

ひき算 2進数

Q. 2進数のひき算をする方法は?

A. 5 - 2 = 3 を、5 + (-2) = 3 のように、マイナスの数を使って、ひき算をたし算に書きかえることで実現します。

2進数で「マイナスの数」を表す

前回の記事で、2進数のたし算をする方法を学習しました。

今回は2進数のひき算についてです。
ひき算は直接計算してもいいですが、とくにコンピュータで計算する場合などは、
ひき算をたし算に直してから計算します。
その方が、コンピュータにとって計算しやすいからです。

ひき算はたし算とは違うもののように思えますが、中学校で習う「負の数(マイナスの数)」を利用すれば、たし算に直すことができます。
「負の数」というのは、-1. -2. -3, ... のように、マイナスがついた数のことです。

例えば、5 - 2 というひき算は、負の数を使って 5 + (-2) というように、たし算の形であらわすこともできますよね?これが分からない人は、中学校の数学を見直すか、できるんだと思い込んでください。

足し算にできたら、あとは -2 を2進数であらわすことができれば、その数と5を足せばよさそうです。

つまり、マイナスの数を2進数で書くことさえできれば、2進数のひき算もできるということです。
では、負の数を2進数であらわすにはどうすればいいでしょうか?

じつは、負の数を表す方法は一つではありません。

  1. 一番左の0,1で符号を表す
  2. 2の補数を使う

1. 一番左の0,1で符号をあらわす

1は例えば 3 を2進数であらわすと

0011

になるとき、-3 を

1011

のように、一番左の数字を 0 から 1 にすることでマイナスを表現しようとする方法です。
しかし、この方法ではうまくひき算ができないので、1番は使いません。

2. 2の補数を使う

ひき算をするときは2番の「2の補数を使う」方法であらわします。

2の補数(にのほすう)ってなんだよ!と思うでしょう。
はい、私もそう思っていました。
ですが、今は言葉の意味について知っている必要はありません。作り方が分かっていればよいです。

2の補数の作り方は、

2進数のすべての0と1を反転させて、1を足す

だけです。
もう一度言います。2の補数は「0と1を反転して、1足す」です。

例を見ましょう。
先ほどと同じく 3 (2進数で0011) にマイナスをつけた、-3 を2の補数を使って表します。
2の補数の作り方は「0と1を反転して、1足す」だったので、
まず反転して、

0011 → 1100  (0と1を反転)

さらに、1足すので、

1100 → 1101  (0001を足す)

となります。つまり、1101 が -3 を2進数を使って表した数ということになります。

ほかの数でも試しましょう。5 は2進数では 0101 なので、2の補数を考えると、
0と1を反転して、

0101 → 1010

1足して、

1010 → 1011

つまり、-5 を2進数であらわすと、1011ということです。

ひき算をしよう!

では、実際にひき算を解いてみましょう!

問1. 5 - 2

はじめの方にも書いていた 5 - 2 を、2進数をつかって計算しましょう。

まず、5 - 2 を2進数に直しましょう。
最初に、5 - 2 を、5 + (-2) とみなします。

5 は2進数で 0101 です。
-2 は2進数で…?

-2 を2進数であらわすためには、2を2進数にした 0010 に対して、2の補数をとります。
2の補数の作り方は「0と1を反転して、1足す」ので、

0010 → 1101 → 1110   (0と1を反転→1足す)

となります。

これで、5 と -2 がどちらも2進数であらわせたので、それらをたし算します。
0101 + 1110   (5 + (-2))

たし算の方法は、前回学んだように、同じ位どうしでたし算するだけです。筆算は省略します。
0101 + 1110 = 10011

最後に、もう1ステップです。
5ケタ目を消します。つまり、10011 → 0011 です。
なぜかというと、今回は2進数を4ケタしか使ってはいけないというルールにしているので、5ケタの場合は強制的に4ケタにします。

つまり、ひき算の答えは 0011 です。
0011 は、10進数に直すと 3 なので、5 - 2 = 3 を正しく計算できているということですね!

問2. 7 - 5

もう一問、解いてみましょう。
次は、7 - 5 です。

まず、7 - 5 を2進数であらわしましょう。
最初に、7 - 5 を、7 + (-5) とみなします。

7 は2進数で 0111、
-5 は2進数で 1011です。
これは 5(2進数で 0101) の2の補数をとったものです。

もともとが

0101

0と1を反転して

1010

1を足して

1011   (これが-5)

2進数に直せたので、7 + (-5) を計算します。
0111 + 1011 = 10010

最後に、5ケタ目を無視します。
つまり、10010 → 0010 です。

というわけで、ひき算の答えは 0010 です。
0010 は10進数に直すと 2 なので、7 - 5 = 2 を正しく計算できたことになります。

ひき算まとめ

まとめると、ひき算の方法は

5 - 2 を計算する場合
  • Step 1
    5 - 2 を2進数に直す

    5 - 2 を2進数にします。

    5はそのまま2進数にして0101。
    -2 を2進数であらわすためには、2 を2進数であらわした 0010 に対して「0と1を反転させて、1足す」をして

    0010 → 1101 → 1110
    1110 を、0010の2の補数といいます。

  • Step 2
    足し算をする

    5 + (-2) を計算します。
    0101 + 1110 = 10011

  • Step 3
    5ケタ目を無視

    5ケタ目は消します。

    0011
    これが答えです。(10進数で 3 )

というものでした。2の補数というみなれない言葉が出てきたので、たし算のときよりも難しく感じたかもしれません。

しかし、たし算ができれば、まとめるとシンプルに計算ができます。

もっと知りたい!

今回は、2進数でひき算をする方法について解説しました。

なぜ「0と1を反転して、1足す」とマイナスの数が表せるのか?
2進数で4ケタしか使ってはいけないってルールはなんで?

ということなど、いろいろ疑問をもつ人もいると思います。YouTube の動画では、よりくわしく解説していますので、そちらもぜひごらんになってください。

【初心者向け】これであなたも2進数の引き算マスター! 2進数で引き算をする方法 [高校情報Ⅰ] [ITパスポート] [基本情報技術者]

コメント

タイトルとURLをコピーしました