「聞いても忘れる。見て覚えています。私は理解しています」――孔子
記事ディレクトリ
人間が 2 進数を計算する方法
まず加算ビットと呼ばれる標準ビットの結果を計算し、次にキャリービットと呼ばれる桁上げするかどうかを計算します。
バイナリ加算器を構築する
論理ゲートを使用してバイナリ加算器を構築します。その考え方は人間の計算の考え方と非常に似ており、最初に加算ビットが計算され、次にキャリービットが計算されます。まず、キャリービットの計算方法を見てみましょう。
シングル キャリー ビットを作成してビットを追加する
キャリービットの論理回路を構築する
桁上げビットの出力表は次のとおりです。
これは AND ゲートの出力と同じなので、AND ゲートを使用して桁上げビットを表すことができます。
加算ビットの論理回路を組む
加算ビットの出力テーブルを図に示します。
キャリー ビットとは異なり、この出力テーブルは簡単に取得できません。まず、OR ゲートと NAND ゲートの出力テーブルを考えてみましょう。
-
OR ゲート:
-
NAND ゲート:
これら 2 つの論理ゲートの出力テーブルと加算ビットは、比較的類似しています。ここでは、離散数学の知識を使用し、真理値表を使用して必要な結果をリストします。
必要な結果が
(A OR B)AND(A AND B)
つまり、
この回路はシンボル、つまり排他的 OR ゲート (XOR) に簡略化でき、2 つの入力が異なる場合、出力は 1 になります。記号表現では、次のとおりです。
半加算器と全加算器
加算ビットと桁上げビットを生成するゲートを一緒に接続します。
これが半加算器です。記号で表されます: 考え
てみてください、垂直演算を行う場合、1 の桁を除いて、残りの桁は前の桁の桁上げと加算する必要があるため、3 つの入力を持つ論理回路が必要です (2 つのこの桁入力の桁数と前のビットのキャリー)、次の回路を使用して表すことができます:
各半加算器は、1 ビットの 2 つの 2 進数を加算でき、左上隅のキャリー入力は、前のビット。この回路の原理は垂直動作と全く同じです。
右下隅にあるこのビットのキャリー出力を計算する場合、半加算器を使用して計算することもできますが、練習後、両方の CO が 1 になるケースは 2 つないことがわかります。したがって、OR を使用します。ゲートは生成でき、半加算デバイスも同じ効果があります。
この回路は全加算器であり、記号で表します。
全加算器を接続する
最終的な目標は、8 ビットの 2 進数の加算器を作成することです。このためには、8 つの全加算器を接続する必要があります。
- 最下位の全加算器のキャリー入力は 0 であるため、次の図で表されます。
- 真ん中の全加算器は通常の使い方です:
- 最後の全加算器は、キャリー出力も表示する必要があります。
最後に、8 ビットの加算器を作成しました:
記号形式で:
私は Frost_Ai です。アルゴリズムの道で一生懸命働いている新人です。読んでくれてありがとう! 良いと思われる場合は、注意を払うことができます。今後、より包括的なアルゴリズムの説明を提供します。