2進法1桁目の計算は半加算器でできますが、2桁目以上は繰り上がりを考える必要があります。
n桁目の計算の結果に、前の桁のキャリーを加え、次の桁へのキャリーも計算します。
Xn,Ynはn桁目の値です。もちろん0か1です。1段目の半加算器で出てきたSを2段目の半加算器の片方に入力し、前の桁のキャリーを加えます。その結果の出力Sがn桁目の計算結果です。
キャリーは2つの半加算器の出力CのORをとります。
前C | X | Y | 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 |
半加算器に桁上がりのキャリーの処理を加えたものを全加算器といいます。
論理素子の組み立てにはいくつかのパターンがあります。上図はその一例です
全加算器と半加算器を組み合わせて4桁の足し算ができるようにした加算器です。
0110とか、0101とかの4桁の2進数を X4X3X2X1 などと書くことにして、
X4X3X2X1 + Y4Y3Y2Y1 =
S4S3S2S1
を計算するレジスタです。