コンピュータの計算回路は、基本的に AND(論理積)・OR(論理和)・NOT(論理否定) の3つの組み合わせで作られています。
| 入力 A | 入力 B | 出力 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| 入力 A | 入力 B | 出力 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
| 入力 | 出力 |
|---|---|
| 0 | 1 |
| 1 | 0 |
2進数の足し算「A + B」を計算します。
・0 + 0 = 00 (和 S=0, 桁上がり C=0)
・0 + 1 = 01 (和 S=1, 桁上がり C=0)
・1 + 0 = 01 (和 S=1, 桁上がり C=0)
・1 + 1 = 10 (和 S=0, 桁上がり C=1)
| 入力 A | 入力 B | 桁上がり C (Carry) | 和 S (Sum) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
和(S)と桁上がり(C)を作る仕組み:
- 桁上がり C :「AとBが両方1」 → AND回路 1つ
- 和 S :「(AかBが1) かつ (両方1ではない)」
➔ OR回路 と NOT回路 と AND回路 を組み合わせて作ります!
和 S = [ (A OR B) AND NOT(A AND B) ]
半加算回路は1桁同士しか加算できませんが、
2桁以上の計算では下からの繰り上がりが発生します。
全加算回路は、入力A, Bに加えて「下の桁からの繰り上がり(C’)」の3つを計算します。
全加算回路は、「半加算回路 2つ」 と 「OR回路 1つ」 を組み合わせることで作られます。
A・B・C’ の丸をクリックすると、信号(オレンジ=1/グレー=0)の流れが確認できます
| 入力 A | 入力 B | 下からの 繰り上がり C’ | 上の桁への 繰り上がり C | 和 S |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |

