【基礎理論】2進数の足し算を処理する論理回路!「半加算器と全加算器」|情報処理問題1000本ノック
コンピュータ内部で数値計算(加算)を行う論理回路の基本知識。下位からの繰り上がり(キャリー)を考慮するかどうかで区別される「半加算器」と「全加算器」の仕組みを攻略しましょう。
1. 【 問題 】:基礎理論(論理回路・コンピュータの構成)
【 問題 】 2進数の加算を行う論理回路に関する記述です。2つの入力ビット($A, B$)のみを加算し、和($S$)と繰り上がり($C$)を出力する回路(下位からの繰り上がりを考慮しない回路)と、2つの入力ビットに加えて「下位からの繰り上がり($C_{in}$)」も含めた計3ビットを加算できる回路の組み合わせとして、正しいものはどれか。
(ア)前者が「半加算器」、後者が「全加算器」
(イ)前者が「全加算器」、後者が「半加算器」
(ウ)前者が「和回路」、後者が「積回路」
(エ)前者が「エンコーダ」、後者が「デコーダ」
2. 正解:
正解:(ア)前者が「半加算器」、後者が「全加算器」
3. 解説:「『下位からの繰り上がり(キャリー)』を計算に含められるかが分かれ目!」
コンピュータが2進数の足し算を行う際、最下位の桁(1の位)は下に桁がないため、2つの数字をそのまま足すだけで済みます。しかし、2桁目以降は**「下の桁から繰り上がってきた1」**も一緒に足し算しなければなりません。
この「繰り上がりを受け取れるかどうか」によって、半加算器と全加算器が使い分けられています。
| 名称 | 入力の数 | 下位からの繰り上がり($C_{in}$) | 使われる場所の例 |
|---|---|---|---|
| 半加算器(Half Adder) | 2つ($A, B$) | 考慮しない(入力不可) | 最下位桁(1の位)の計算など |
| 全加算器(Full Adder) | 3つ($A, B, C_{in}$) | 考慮する(受け取れる) | 2桁目以降の計算など |
1. 回路構成のポイント(試験で超頻出!):
・半加算器:和はXOR(排他的論理和)、繰り上がりはAND(論理積)の2つのゲートだけで作ることができます。
・全加算器:「半加算器 2個」+「ORゲート 1個」を組み合わせることで作ることができます。
2. 試験対策の視点: 基本情報技術者や応用情報技術者試験のテクノロジ系(ハードウェア・論理回路)で頻出の問題です。
問題文で「繰り上がりを考慮しない=半加算器」、「繰り上がりもあわせて加算=全加算器」、「半加算器2個で全加算器を構成できる」というポイントを必ず押さえておきましょう!
4. まとめ
下位からの繰り上がりを受け取らないのが半加算器、繰り上がりも含めて3つのビットを足し算できるのが全加算器です。半加算器2つとOR回路1つで全加算器が作れる点もあわせて覚えておきましょう!