半加算器について
ニュートンさん
(No.1)
半加算器は下位からの桁上がりを考慮しない仕組みになっているんですがではなぜCとSがあってCは下位からの桁上がりに使用されてるんですか?例えば 1+1 の時に下位からの桁上がりでCが1になる。そもそも桁あがりを考慮しないのになぜこういう答えになるのか?
ずっと気になってる質問で分かりやすく説明してもらえれば大変ありがたいです。
ずっと気になってる質問で分かりやすく説明してもらえれば大変ありがたいです。
2024.01.12 08:49
まーぼさん
★FE シルバーマイスター
(No.2)
半加算器は最下位ビットの計算に、全加算器は最下位ビット以外の計算に使います。最下位ビットの計算時にはもちろん下位からの繰り上げはないので全加算器を使う必要がありません。では、最下位ビットの計算時には下位からの繰り上げを0として全加算器を使用するのでいいのでは?と思うかも知れませんが、全加算器は2つの半加算器を組み合わせているので、半加算器を使った方が単純化できるというのが私の考えです。
2024.01.12 10:31
電タックさん
★FE ブロンズマイスター
(No.3)
質問の意図がうまく取れてないかもしれませんが
半加算器自体が使う使わないはあまり意味を持っていなくて、
回路として位上げ(キャリービット)が無いと1+1だったのか0+0だったのかを判断できない=使い物にならない。からじゃないでしょうか
半加算器自体が使う使わないはあまり意味を持っていなくて、
回路として位上げ(キャリービット)が無いと1+1だったのか0+0だったのかを判断できない=使い物にならない。からじゃないでしょうか
>1+1と0+0が同一の0で良ければ排他的論理和1個で良かったハズなので
2024.01.12 13:09
boyonboyonさん
★FE シルバーマイスター
(No.4)
まーぼさんの説明の通りだと思います。
ここで、足し算の筆算を考えるとわかりやすいです。
0110+0111の場合
◇は、空白のつもりです。
◇◇11(0) ←繰り上がり
◇◇0110
◇+0111
ーーーーーーー
◇◇1101
最下位の1の位は、入力値が2つしかないので半加算器でOK。
上位は、入力が3つなので全加算器を使うということだと思います。
ここで、足し算の筆算を考えるとわかりやすいです。
0110+0111の場合
◇は、空白のつもりです。
◇◇11(0) ←繰り上がり
◇◇0110
◇+0111
ーーーーーーー
◇◇1101
最下位の1の位は、入力値が2つしかないので半加算器でOK。
上位は、入力が3つなので全加算器を使うということだと思います。
2024.01.13 01:36
ニュートンさん
(No.5)
良く理解できました!皆さんの答えで単純な分野かもしれませんが様々な視点で理解を深めることができました。貴重な時間を使って説明して頂きありがとうございます!
2024.01.13 09:30
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告