seegongsik
単語帳
構造

ゲートをつなぐと、たし算する機械になります

前回つくった かつ・または・ではないのゲート。これをいくつか つなぐと、おどろくことに、たし算する機械になります。コンピュータが計算をする、まさにその出発点です。

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

全加算器 · 三つの入力。

全加算器はじつは、
半加算器二つを つなぎ合わせたものです。
小さな部品で少し大きな部品を作り、
それをまた つないで
もっと大きなものを作る。
これがコンピュータを作るやり方です。

04

いくつもつなげば大きな数もたせます

全加算器一つは、
一けただけたします。
では四けた、八けたの数は?
かんたんです。
全加算器を よこに ずらりと つなげばいい。
一けたのくり上がりを、
となりのけたの入力に わたしながら。
じっさいに二つの数をたしてみてください。

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

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

上のだんと まん中のだんをオンにすると、
いちばん下のだんに 和がひとりでに出ます。
人が計算しているのではなく、
ゲートたちがくり上がりを よこにわたしながら、
みずから答えを作っているんです。

05

たし算は けっきょくゲートでした

コンピュータが計算をするのが、
じつは魔法ではありませんでした。
かつ・または・ではないのゲートを、
決まったかたちに つないだだけ。
スイッチをオンにすると、
電気がゲートたちを ながれて、
答えが あかりをつけるんです。

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

小さいものから大きいものへ。

こうして小さな部品から、
大きな働きが育ちます。
次回は、
電気がながれているのに
値をつかまえておく回路、
つまり おぼえる回路に 会ってみます。

一言でいうと1+1のくり上がりをゲート二つで解き、それをつないで大きな数のたし算を作りました。コンピュータの計算は魔法ではなく、ゲートをかしこく つないだものでした。
このページがお役に立ったなら寄付する
構造