2進数の加算は少し奇妙なプロセスであり、最初は少し困惑しているように見えます。 しかし、実際には、それは私たちが初等数学の一部として教えられている10進数の追加に非常に似ています–私たちが10ではなく2桁で作業している
バイナリ用語での加算について考え始めるには、2つの1ビット値のバイナリ加算を見てみましょう-私たちが想像できる最も単純な形式の加算:
上の表は、バイナリ加算の基本的な論理規則を表しています。 表の左側の数字は、追加しようとしているバイナリ値を表し、右側の数字はこの加算の結果を表します。 これは、突然現れた奇妙なキャリーコラムから離れて意味をなさないかもしれません!
carry列は、1ビットだけで表現できる量を超えた結果を示します。 これを表す余分なビットを持つことは、次の単位列に値を超える値を移動(または運ぶ)するメカニズムとして機能します(バイナリでは、これらの単位列は1、2、4、8です。.. など)加算を計算するとき。 直感的には、10進数の値を次の単位列(1、10、1000)に「運ぶ」のと同じ方法でこれを考えることができます。.. など)手で小数加算を計算するとき。
しかし、これをハードウェアとして実装するのはどうですか? さて、加算方法は基本的なロジックを使用しているので、以下のブロック図で表されるデジタル回路として構成することができます。
この回路は、入力として2つの1ビットバイナリ値(A&B)を取り、結果(R)を出力し、キャリー値(キャリーは結果からの出力であるため、”carry out”、または略してCoutと呼びます)。 この動作は、1ビットのバイナリ加算を実行できるようにするためのメカニズムである”半加算器”を定義するものです。