- ベストアンサー
コンピュータシステムの計算
4ビットの2進数が2つある。これらをa3a2a1a0 と b3b2b1b0 は 0か1と書くことにする。これらのビットごとの論理積は0010であり、ビットごとの論理和は1011となる。2つの数の和を求めよ。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ビットごとの論理積と論理和の基礎についてはANo.2を参照。 ビットごとの論理積は0010より,a1とb1はbit1であることが分かる。 a3a2a1a0=??1? b3b2b1b0=??1? ビットごとの論理和は1011より,a2とb2はbit0であることが分かる。 a3a2a1a0=?01? b3b2b1b0=?01? a3とb3は,その論理積が0 論理和が1より,一方がbit1 他方がbit0であることが分かる。 a0とb0も同様。よって2つの2進数は,次の4つの組合せのうちのどれか。 a3a2a1a0=1011,1010,0011,0010 b3b2b1b0=0010,0011,1010,1011 4つの組合せのどれであっても和はすべて同じ。 a1+b1の位置でだけ桁上がりが生じて,和は1101となる。
その他の回答 (2)
- Cupper-2
- ベストアンサー率29% (1342/4565)
>ビットごとの論理積は0010であり、ビットごとの論理和は1011 これがどういうことか分からないと言うことですか? まず、論理積と論理和 これの意味は分かりますか。 論理積は 1×1=1 1×0=0 0×1=0 0×0=0 と、普通にかけ算ですので分かりやすいでしょう。 1111 0010 ×━━━━ 0010 こんな感じ 論理和は 1+1=1 1+0=1 0+1=1 0+0=0 と、ちょっと変な感じ。 これは1以上であれば1とすると覚えてください。 1+1=10・・・1以上なので1とする。 こう考えると分かりやすいと思います。 さて本題。 論理積で0010 論理和で1011 ならば、 aとbのどちらのビットに1があるのか明確なのは2ビット目だけです。 ですが、どのビットに1があるのかは分かります。 4ビット目 1と0 3ビット目 0と0 2ビット目 1と1 1ビット目 1と0 これ、パズルのようなモノです。難しく考えずにどんな組み合わせになるのかを想像してみましょう。 でもって、各ビットの状態が分かるならそれを普通に足せばいい。 結果は…自身で計算してください。 ブール代数とか使っても答えは出てきますが、そんなもの使わなくても 頭の中で、パッと思いつくくらいになればこの手の問題は怖くないですよ。 (それなりに数と時間を掛けないとダメかもしれませんけどね) がんばってください。
技術者カテは「素人が技術者に質問できる場所」じゃなくて、「技術者が困った時に、お互い質問して解決する場所」なんですけど。課題や試験問題の解き方を聞く場所じゃない。どうしても聞きたかったら、自分でどこまでやって何が解らなかったのかを質問に明記しないと。 全く解りませんって話なら、論理積と論理和の真理値表を理解するところから始めなきゃ。答えだけ聞いたのでは、問題のパターンを変えられたらもう通用しなくなるので。もう一つの質問も同じことが言えそう。