アプリ版:「スタンプのみでお礼する」機能のリリースについて

加算器に半加算器と全加算器がありますが、半加算器は下位の桁からの桁あがりを考慮しない加算器、全加算器は下位の桁からの桁あがりを含める加算器とは、具体的にどういうことですか?

A 回答 (3件)

その説明の通りなんですが。



通常「加算器」というと、 1ビット+1ビットの足し算を求める回路になります。

小学校の筆算の話をします。
足し算の筆算では、複数の桁の足し算を、一桁の足し算に分けて求めます。

56 + 23
これは
一の位 6+3 = 9
十の位 5+2 = 7

56 + 23 = 79


56 + 27
これは
一の位 6+7 = 13 → 1繰り上げて、 3
十の位 5+2 = 7 に一の位からの繰り上がりを足して 8

56 + 27 = 83

となりますよね?

このとき、
・一の位は、「下からの繰り上がり」はまったく考慮する必要なく、2数の和を計算すればよい。
・十の位は、2数の和の他に、「下からの繰り上がり」を足す必要がある。
となります。


この考えは、二進数でも同じです。
・1の位は、「下からの繰り上がり」はまったく考慮する必要なく、2数の和を計算すればよい。
 この桁の計算に使えるのが「半加算器」です。
・10の位は、2数の和の他に、「下からの繰り上がり」を足す必要がある。
 この桁の計算に必要なのがのが「全加算器」です。
    • good
    • 3

半加算器は下の桁からの桁上がりを考慮しないので、2つのビットを加算する。


全加算器は下の桁からの桁上がりを考慮するので、3つのビットを加算する。
どちらもアウトプットは2桁です。
半加算器は1の桁の加算に使い、全加算器は上位桁の加算に使います。

半加算器(入力A,B, 出力C,S)
ABCS
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

全加算器(入力A,B,X, 出力C,S)
ABXCS
0 0 0 0 0
0 1 0 0 1
1 0 0 0 1
1 1 0 1 0
0 0 1 0 1
0 1 1 1 0
1 0 1 1 0
1 1 1 1 1

# 複数桁の加算では下の桁の出力Cを一つ上の桁のXに入れる。
    • good
    • 1

2進数では1+1=10となる。


10進数で9+1=10になるのと同じ。1桁目が桁上がりするので、0その左は桁上がりするので1。

2進数でも同じ。
半加算器は桁上がりをしない回路で出来ているので、1+1=0となる。
左へ1桁上がりするが、その回路が無いので0となる。

全加算器は桁上がり回路を考慮しているので、1+1=10となる。


半加算器の場合
101010 +
001111 =
101101

全加算器の場合
101010 +
001111 =
111001
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!