Skip to the content.

最終更新日:2026年8月24日

まず結論

全加算器(Full Adder)とは、3つの1ビットの値を加算し、桁上がり C(Carry)その桁の和 S(Sum)を出力する論理回路です。

科目Aでは、最初から論理式を覚えるより、次の順番で考えると判断しやすくなります。

入力に1が何個あるか数える
↓
個数を2進数で表す
↓
上位ビットをC、下位ビットをSと読む

例えば、入力が 1, 0, 1 なら1は2個です。

1 + 0 + 1 = 2
2 = 10(2進数)

10
↑↑
C S

C = 1
S = 0

「1の個数を数える」と考えるのが、全加算器を理解する近道です。

直感的な説明

全加算器は、3つのスイッチのうち、何個がONになっているかを数える回路だと考えると分かりやすくなります。

入力はすべて0か1なので、1の個数は0〜3個です。

1の個数 10進数の合計 2進数 C S
0個 0 00 0 0
1個 1 01 0 1
2個 2 10 1 0
3個 3 11 1 1

この表を見ると、全加算器の出力はかなり単純です。

1が0個 → 00 → C=0, S=0
1が1個 → 01 → C=0, S=1
1が2個 → 10 → C=1, S=0
1が3個 → 11 → C=1, S=1

つまり、入力の並びそのものより、1が何個あるかに注目すればよいことが分かります。

定義・仕組み

全加算器には3つの入力があります。

一般には、次のように表します。

A   :1つ目の入力
B   :2つ目の入力
Cin :下位桁から来た桁上がり

C   :次の桁へ渡す桁上がり
S   :その桁の和

ここで CinCarry in の略です。

全加算器が「全」と呼ばれる重要な理由は、単に3つの値を足すからではなく、下位桁から来た桁上がりも入力として扱えることにあります。

まず普通の足し算として考える

入力が A=1, B=0, Cin=1 の場合を考えます。

1 + 0 + 1 = 2

2を2進数で表すと 10 です。

10

この2ビットを、そのままCとSに分けます。

10
↑↑
C S

したがって、

C = 1
S = 0

となります。

なぜ上位ビットがCなのか

2進数でも、1桁に置ける値は 0 または 1 だけです。

合計が2以上になると、その桁だけでは表せないので、上の桁へ繰り上がります。

例えば、

1 + 1 = 10

では、右側の 0 がその桁に残る値で、左側の 1 が次の桁へ送られる値です。

1 0
↑ ↑
C S

このため、

  • C はCarryなので桁上がり
  • S はSumなのでその桁の和

と考えます。

全加算器の真理値表

入力3つの組合せを整理すると、次のようになります。

A B Cin 1の個数 C S
0 0 0 0 0 0
0 0 1 1 0 1
0 1 0 1 0 1
1 0 0 1 0 1
0 1 1 2 1 0
1 0 1 2 1 0
1 1 0 2 1 0
1 1 1 3 1 1

試験対策では、この8行を丸暗記する必要はありません。

1の個数
0個 → 00
1個 → 01
2個 → 10
3個 → 11

と考えれば、その場でCとSを求められます。

半加算器との違い

半加算器と全加算器の違いは、下位桁からの桁上がりを入力できるかどうかです。

回路 入力数 下位桁からの桁上がり入力
半加算器 2 扱わない
全加算器 3 扱う

半加算器は、2つの1ビットだけを加算します。

全加算器は、そこに下位桁から来た桁上がり Cin を加えて計算します。

そのため、複数桁の2進数を加算するときには全加算器が重要になります。

半加算器の仕組みは、半加算器とは?AND・XORで和と桁上がりを求める仕組みで整理しています。

このテーマは、基本情報技術者試験のコンピュータ構成要素や論理回路と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

全加算器では、入力値から CS を求める問題や、半加算器との違いを問う問題に注意します。

判断手順1:1の個数を数える

例えば、入力が次の場合です。

A = 1
B = 1
Cin = 0

1は2個あります。

1 + 1 + 0 = 2

判断手順2:2進数にする

2 = 10

判断手順3:CとSに分ける

10
↑↑
C S

したがって、

C = 1
S = 0

です。

試験中は、次の対応だけ思い出せれば十分です。

0個 → 00
1個 → 01
2個 → 10
3個 → 11

どんな場面で使う?

複数桁の2進数を足す

全加算器は、複数桁の2進数を加算するときに使われます。

例えば10進数の筆算でも、下の桁で発生した繰り上がりを上の桁へ渡します。

2進数でも同じです。

下位桁で桁上がりが発生
↓
次の桁のCinへ渡す
↓
A + B + Cin を計算
↓
さらにCを次の桁へ渡す

この連鎖によって、複数ビットの加算ができます。

CPUの演算回路

コンピュータ内部では、加算処理がさまざまな演算の基本になります。

全加算器を複数組み合わせることで、複数ビットの加算回路を構成できます。

よくある誤解・混同

CとSを逆にする

最も起こりやすい混同です。

C = Carry
→ 桁上がり
→ 上位ビット

S = Sum
→ その桁の和
→ 下位ビット

例えば合計が2なら、2進数では 10 です。

10
↑↑
C S

したがって C=1, S=0 です。

10進数の「10」と考えてしまう

10 はここでは2進数の10です。

2進数の10 = 10進数の2

数字の見た目は同じでも、何進数かによって意味が違います。

3つの入力を別々の論理演算として考えすぎる

入力値を見た瞬間にANDやORなどの論理式を考え始めると、初学者にはかえって分かりにくくなることがあります。

まずは普通の足し算として、

A + B + Cin

を計算し、その結果を2進数にする方法で十分です。

半加算器と全加算器を「入力数だけ」で覚える

半加算器 → 入力2つ
全加算器 → 入力3つ

という覚え方でも問題は解けますが、本質はもう一歩先にあります。

半加算器
→ 下位桁からの桁上がりを入力しない

全加算器
→ 下位桁からの桁上がりCinを入力できる

ここまで理解しておくと、複数桁の加算とのつながりも見えやすくなります。

まとめ(試験直前用)

  • 全加算器は、3つの1ビットを加算して CS を出力する
  • C はCarry=桁上がり、S はSum=その桁の和
  • 迷ったら、入力にある1の個数を数える
  • 0個→00、1個→01、2個→10、3個→11
  • 半加算器との違いは、下位桁からの桁上がり Cin を入力できること
全加算器
↓
1の個数を数える
↓
2進数にする
↓
上位ビット = C
下位ビット = S

© 2024-2026 stemtazoo. All rights reserved.