「コーディング — コンピュータ ソフトウェアとハードウェアの背後にある言語」の改良 — 第 12 章 (Binary Adder)

「聞いても忘れる。見て覚えています。私は理解しています」――孔子

人間が 2 進数を計算する方法

ここに画像の説明を挿入
まず加算ビットと呼ばれる標準ビットの結果を計算し、次にキャリービットと呼ばれる桁上げするかどうかを計算します。

バイナリ加算器を構築する

論理ゲートを使用してバイナリ加算器を構築します。その考え方は人間の計算の考え方と非常に似ており、最初に加算ビットが計算され、次にキャリービットが計算されます。まず、キャリービットの計算方法を見てみましょう。

シングル キャリー ビットを作成してビットを追加する

キャリービットの論理回路を構築する

桁上げビットの出力表は次のとおりです。
ここに画像の説明を挿入
これは AND ゲートの出力と同じなので、AND ゲートを使用して桁上げビットを表すことができます。

加算ビットの論理回路を組む

加算ビットの出力テーブルを図に示します。
ここに画像の説明を挿入
キャリー ビットとは異なり、この出力テーブルは簡単に取得できません。まず、OR ゲートと NAND ゲートの出力テーブルを考えてみましょう。

  1. OR ゲート:
    ここに画像の説明を挿入

  2. 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 つの全加算器を接続する必要があります。

  1. 最下位の全加算器のキャリー入力は 0 であるため、次の図で表されます。
    ここに画像の説明を挿入
  2. 真ん中の全加算器は通常の使い方です:
    ここに画像の説明を挿入
  3. 最後の全加算器は、キャリー出力も表示する必要があります。
    ここに画像の説明を挿入

最後に、8 ビットの加算器を作成しました:
ここに画像の説明を挿入
記号形式で:
ここに画像の説明を挿入
写真の説明を追加してください
私は Frost_Ai です。アルゴリズムの道で一生懸命働いている新人です。読んでくれてありがとう! 良いと思われる場合は、注意を払うことができます。今後、より包括的なアルゴリズムの説明を提供します。

おすすめ

転載: blog.csdn.net/m0_72987309/article/details/130346075