×

tomoロゴ tomo

【高校情報】2進数の補数の求め方をわかりやすく解説

イリエダ
イリエダ
こんにちは、イルカの妖精イリエダよ。今日は2進数の補数の求め方を一緒に勉強していきましょう。

 

補数(ほすう)とはそもそも何??

まずは基本からね。

補数とは、

補数とは「足すと1桁増える数」になる相手のこと

よ。

 

まずは慣れ親しんだ10進数で考えてみましょう。

たとえば「37」。

これにいくつ足せば「100」、つまり一桁増えるかしら??

そう、63ね。

なぜなら、

37 + 63 = 100

になるから。つまり、63が「37の補数」なの。

 

2進数の補数の求め方がわかる2ステップ

今度は2進数で考えてみましょう。

「011」の補数は何になるかしら?

2進数 補数 求め方 わかりやすく

一緒に求めてみましょう。

次の2ステップを踏むといいわ。

 

一桁増えた2進数の最初の数を探す

まず、一桁増えた2進数の最初の数を探すの。

「011」は3桁だから、4桁の2進数の最初の数ってことね。

今回の場合、一桁増えた2進数の最初の数は

1000

になるわ。

だから、

011 + □ = 1000

になるような、□の数を求めればいいのね。この□が補数になるはずよ。

 

(一桁増えた2進数の最初の数) - (元の2進数)

そのためには、

1000 – 011

すればいいわね。つまり、

(一桁増えた2進数の最初の数) - (元の2進数)

を計算するの。

 

えっ、引き算のやり方がわからない??

そんなときは2進数の引き算のやり方を復習してね。

 

ってことで、

1000 – 011

を計算すると、

101

になるわ。

2進数 補数 求め方 わかりやすく

したがって、「011」の補数は「101」よ!

 

ぶっちゃけ補数の求め方で肝は2進数の引き算ね。

繰り下がりのテクさえ身につけておけば計算できるはずよ。

 

なぜ2進数で補数の計算が重要なのか??

でも、なぜ補数が重要なのかしらね??

めんどくさい計算やらすなって顔してるわね。

 

補数が重要な理由、それはズバリ、

コンピューターは引き算を得意ではないから

よ。

実はコンピューターの中では、基本的に「足し算」しかしていないの。

引き算専用の特別な回路を作るよりも、足し算の仕組みを使い回した方がシンプルだからよ。

 

そこで登場するのが補数。

補数を使うと、

A − B = A +(Bの補数)

の形に変えられるの。

つまり、減算を加算に変換できるというわけ。

 

ただし、ここで大事なポイント。

補数がきちんと機能するのは、同じビット数(同じ桁数)で計算しているときだけ

なのよ。

なぜなら、補数は

「そのビット数で表せる最大の値」を基準に作られているから。

3ビットなら 2³、
4ビットなら 2⁴、

というように、基準が変わってしまうの。

だからコンピューターは、

あらかじめビット数を固定した世界で計算しているのよ。

 

つまり補数とは、

「同じビット幅の世界で、引き算を足し算に変換するための魔法」

なの。

 

たとえば、さっきの

「011」の補数は「101」

で確かめてみましょうか。

110 – 011

をしたいときは、

110 + 011の補数

にする。

つまり、

110 + 101

ね。

 

これを計算すると、

1011

になる。

2進数 補数 求め方 わかりやすく

で、桁上がりの一番左の1を無視すれば、

011

になる。

2進数 補数 求め方 わかりやすく

これは

110 – 011

の計算結果と同じね。

2進数 補数 求め方 わかりやすく

 

補数は日常では差を求めたりする場面で利用されることが多いの。

例えば、差の計算やデータ通信でのエラー検出なんかにも補数は役立っているわ。

 

イリエダ
イリエダ
これで2進数とその補数について少しは詳しくなったかしら?次回もお楽しみにねっ!

 

それじゃあ、またね!

妖精

ここまで読んでくれてありがとう!おつかれさまでした。

「高校情報Iのまとめページ」で他の記事も復習してみてね。

▶ まとめを見に行く