Foxode IT基礎

IT基礎 / LESSON 05

2進数の計算

10進数と同じように右から一桁ずつ。違うのは、使える数字が0と1だけということです。

GOAL
2進数の足し算と引き算を理解する
TRY
繰り上がり・借り・桁あふれを見つける
FORMAT
全8ステップ・テキスト版
+
01

足し算の基本

1 + 1 で桁が増える

0 + 0 = 0そのまま0
0 + 1 = 1そのまま1
1 + 0 = 1そのまま1
1 + 1 = 1020を書き、1を繰り上げる
FOXODE GUIDEVOICE 001

二進数の足し算も、右の桁から順に計算します。ゼロたすゼロはゼロ。ゼロたす一と、一たすゼロは一です。一たす一は二ですが、二進数には二という数字がありません。そこで、ゼロを書き、左の桁へ一を繰り上げます。

02

繰り上がり

前の桁から来た1も足す

1021 + 1
答えの桁は0 / 繰り上がりは1
1121 + 1 + 1
答えの桁は1 / 繰り上がりは1
FOXODE GUIDEVOICE 002

前の桁から繰り上がってきた一も、忘れずに足します。一たす一たす一は、十進数では三。二進数では、いち、いち、です。その桁には一を書き、さらに一を左へ繰り上げます。

03

足し算してみよう

1011 + 0110

   11 
   1011
  0110
-------
  10001

1110 + 610 = 1710

FOXODE GUIDEVOICE 003

二進数の、いち、ゼロ、いち、いち、と、ゼロ、いち、いち、ゼロ、を足します。右端は、一たすゼロで一。次は、一たす一で、ゼロを書いて一を繰り上げます。次も、ゼロたす一たす繰り上がりの一で、ゼロを書いて一を繰り上げます。最後も、一たすゼロたす一です。結果は、いち、ゼロ、ゼロ、ゼロ、いち、になります。

04

引き算の基本

0から1を引くときは借りる

1 − 0 = 1そのまま1
1 − 1 = 0同じなので0
0 − 0 = 0そのまま0
102 − 1 = 1左から1を借りる
FOXODE GUIDEVOICE 004

引き算も右から計算します。ゼロから一は引けないので、左の桁から一を借ります。二進数で左から借りた一は、今の桁では、いち、ゼロ、つまり十進数の二になります。二から一を引くので、今の桁の答えは一です。

05

引き算してみよう

1010 − 0011

   1010
−  0011
-------
   0111

1010 − 310 = 710

FOXODE GUIDEVOICE 005

二進数の、いち、ゼロ、いち、ゼロ、から、ゼロ、ゼロ、いち、いち、を引きます。右端では、左から一を借りて答えは一です。次の桁でも一を引く必要がありますが、すぐ左の桁はゼロです。そこで、さらに左にある一から、順番に借りてきます。結果は、ゼロ、いち、いち、いち。十進数でも、十ひく三は七なので、答えを確認できます。

06

固定ビット幅

答えが箱からはみ出す

4ビットの符号なし整数:00002 〜 11112

表せる範囲:0 〜 15

11112 + 00012 = 100002

正しい答えには5ビット必要 → 4ビットには収まらない

FOXODE GUIDEVOICE 006

コンピューターでは、数を保存する桁数が決められていることがあります。四ビットの符号なし整数なら、表せるのはゼロから十五までです。十五に一を足した答えは十六ですが、二進数では五桁必要です。四ビットの箱には収まらない。この状態を、オーバーフローと呼びます。

下位4ビットだけを残す方式では0000になります。実際の通知や処理は、CPUやプログラムの仕組みによって異なります。

07

足し算を確認

0101 + 0011 は?

FOXODE GUIDEVOICE 007

二進数の、ゼロ、いち、ゼロ、いち、と、ゼロ、ゼロ、いち、いち、を足してみましょう。右端から、一桁ずつ計算してください。

  1. A0110
  2. B1000
  3. C1001
答えを確かめる

正解は B:10002

正解したときVOICE 007A

正解です。答えは、いち、ゼロ、ゼロ、ゼロ。十進数では、五たす三で八です。四ビット以内に収まっているので、オーバーフローはありません。

もう一度考えるときVOICE 007B

繰り上がりを確認しましょう。右端は、一たす一なので、ゼロを書いて一を左へ繰り上げます。

08

最後の確認

引き算とオーバーフロー

11002 − 01012 = ?

11102 + 00112 は4ビットに収まる?

FOXODE GUIDEVOICE 008

最後に二つ確認します。まず、いち、いち、ゼロ、ゼロ、から、ゼロ、いち、ゼロ、いち、を引いてください。次に、四ビットの、いち、いち、いち、ゼロ、と、ゼロ、ゼロ、いち、いち、を足したとき、答えが四ビットに収まるか考えてみましょう。

答えを確かめる

01112 / 4ビットではオーバーフロー

解答VOICE 008A

一つ目の答えは、ゼロ、いち、いち、いち。十進数では、十二ひく五で七です。二つ目の正確な答えは、いち、ゼロ、ゼロ、ゼロ、いち。五桁必要なので、四ビットではオーバーフローします。下位四ビットだけなら、ゼロ、ゼロ、ゼロ、いち、が残ります。

0と1でも、繰り上がりと借りの仕組みは同じです。