seegongsik
構造

わかりやすく コンピュータ 足し算 どうやる

前のレッスンで作ったAND・OR・NOTのゲートをいくつか組み合わせると、驚いたことに足し算をする機械になります。コンピュータの計算は、まさにここから始まります。

01

0と1の世界では1+1が10

足し算を回路にする前に、0と1での足し方を確かめておきます。
0+0は0、0+1は1です。ここまでは簡単です。
では1+1は? 二進数には2という数字がないので、位を上げて10になります。
十進数の10ではなく、二進数の「イチゼロ」です。

¹
1
+ 1
10
2がないので、繰り上げて10 (二進数のイチゼロ)

二つのビットを足した結果を、場合ごとに確かめられます。

つまり、二つのビットを足すと結果が二つ出てきます。
一つはその位に残る値、もう一つは次の位へ送る値です。
この二つをそれぞれ和と繰り上がりと呼びます。

02

和はXOR、繰り上がりはAND

驚くのはここからです。この規則は、前のレッスンのゲートでそのまま作れるのです。
和は二つのビットが違うときだけ1になるので、XOR(互いに違う)と同じです。
繰り上がりはどちらも1のときだけ1になるので、ANDゲートと同じです。
ゲートが二つあれば完成です。

A
0
B
0
半加算器
繰り上がり (AND)
0
和 (XOR)
0
和 = A XOR B  ·  繰り上がり = A AND B
0 + 0 = 00 (繰り上がり 0, 和 0)

半加算器。入力をオンにすると、和と繰り上がりがすぐに変わります。

二つのビットを足して和と繰り上がりを出すこの小さな機械を、半加算器と呼びます。
たった二つのゲートで、世界でいちばん簡単な加算器を作ったわけです。

03

繰り上がりまで足してこそ本当の足し算

ところが、半加算器にはすき間があります。
何桁もの数を足すときは、下の位から上がってきた繰り上がりもいっしょに足さなければなりません。
そこで入力は、A、B、そして下から受け取った繰り上がりの三つになります。
この三つをすべて足す機械が全加算器です。

A
0
B
0
受け取った繰り上がり
0
全加算器
次の位へ
0
和
0
0 + 0 + 0 = 00

全加算器。入力は三つ。

全加算器は、半加算器二つにORゲートを一つ加えて作ります。
小さな部品で少し大きな部品を作り、それをまた組み合わせてもっと大きなものを作るのです。
コンピュータは、最初から最後までこうして作られています。

04

たくさんつなげば大きな数も足せる

全加算器一つが足せるのは1桁だけです。
4桁や8桁の数を足すには、全加算器を横にずらりと並べてつなげばよいのです。
ある位の繰り上がりを、すぐ隣の位の入力に送るしくみです。
下では、二つの数を自分でオンにして足せます。

A
0
0
0
0
0
+ B
0
0
0
0
0
和
0
0
0
0
0
0
0 + 0 = 0

二つの数をオンにして足す(4ビット)。

上の段と真ん中の段をオンにすると、いちばん下の段に和がひとりでに表示されます。
人が計算しているのではなく、ゲートが繰り上がりを横へ送りながら答えを作っているのです。

05

足し算は結局ゲートだった

コンピュータが計算するというのは、じつは魔法ではありませんでした。
AND・OR・NOTのゲートを、決まった形に組み合わせておいただけです。
スイッチを入れると電気がゲートを伝って流れ、その先で答えが明かりをともすのです。

ゲート (かつ・または・ではない)
↓ 二つをつなぐと
半加算器 (1桁の足し算)
↓ 二つをつなぐと
全加算器 (繰り上がりまで)
↓ いくつもつなぐと
大きな数の足し算

小さな部品から大きな部品へ。

こうして、小さな部品から大きな働きが育っていきます。
次のレッスンでは、電気が流れ続けていても値をつかまえておく回路、つまり記憶する回路に出会います。

一言でいうと1+1の繰り上がりを二つのゲートで解き、それをつなげて大きな数の足し算を作りました。コンピュータの計算は魔法ではなく、ゲートを賢く組み合わせたものだったのです。
← 構造
このページがお役に立ったなら支援する