- 締切済み
論理演算
8桁の2進数10110111の最上位(最左端)のビットだけを0にするには、8桁の2進数01111111と、どのような論理演算を行えばよいか。 選択肢 (1)論理積 (2)論理和 (3)否定論理積 (4)否定論理和 という問題の答えと、なぜそうなるかを教えて下さる方いませんか。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- yaritsusozai
- ベストアンサー率59% (50/84)
論理積(AND)…文字通り、二つの入力信号の桁毎の積を取ります。 [10110111] * [01111111] 1~3桁目と5~6桁目は、1*1なので答えは1、それ以外は、0*1または0*1なので0になります。勿論、0*0の場合も0です。 結果、 [00110111]が出力されます。 元の値の最左端だけを0に変えて他はそのままにしたいのであれば、これが正解でしょう。 参考までに、他の論理演算を列記すると、 論理和(OR)は、同様に「和」を取ります。どちらか片方でも1なら結果は1です。(1+0または0+1になるから) 排他的論理和(XOR)は、「どちらか片方だけが1」という排他的な評価をし、それに合致した時のみ1を返します。両方1の場合は0です。 論理等価演算(EQV)は、二つの信号が等価であることを評価します。即ち、どちらも0またはどちらも1であれば1を返します。 論理包含(IMP)は、1つ目の信号が1で2つ目の信号が0の時のみ、0を返し、それ以外は1を返します。これについては、「最初の条件が真で、かつ、二つ目の条件が偽の時、偽を返す」と言い換えた方が分かりやすいかも知れません。 論理否定(NOT)は、ちょっと特殊で、これだけは入力信号が1つです。信号が0なら1に、1なら0に反転させます。他の論理演算と組み合わせることで、否定論理積や否定論理和などの評価が可能になります。
- DarkMoon
- ベストアンサー率21% (225/1046)
排他論理和は、真の入力が一つだけのとき、出力が真と覚えてください。 三つ以上の入力がある排他論理和回路のとき、 真の入力が二つ以上あったら出力は偽になります。 論理回路学は色々組み合わせるので、入門者には辛いですが 考え方のコツが解れば後は楽ですよ
- Tacosan
- ベストアンサー率23% (3656/15482)
#3 が意図しているのは「10000000」ではなく「01111111」じゃないかな. ということで, 「最上位(最左端)のビットだけを0にする」が ・#2 のように「最上位ビットだけ 0 にしてその他のビットはそのまま」 ・#3 のように「最上位ビットだけ 0 にしてその他のビットは 1」 と複数の解釈ができる (これ以外はたぶんないよなぁ) のがそもそも問題だったりする. 「後者のように解釈すると答えが存在しない, だから前者のように解釈しなきゃならない」というのもありといえばあり (法律解釈だとそんな感じ) なんだが, 自然科学においてはあまり適切な感じはしない.
- DarkMoon
- ベストアンサー率21% (225/1046)
論理積が正解にちかいのですが 4ビット目と7ビット目も0になってしまいます。 選択肢に出てないが、否定排他論理和が正解では?
- vivace152
- ベストアンサー率55% (91/165)
答えは(1)論理積 です。 理由ですが、論理積(AND演算)の動作は、 一方の入力が"1"であれば、出力の値はもう一方の値がそのまま出てきます。また、 一方の入力が"0"であれば、出力の値はもう一方の値にかかわらず必ず"0"となります。 今回の問題では、最上位ビットを"0"に、残りのビットはそのまま出力する必要が有るため、論理積の上記の特性を利用します。 なお、こういう処理を「マスクする」と言います。特定ビットを"0"にしたいばあいは論理積を、特定ビットを"1"にしたい場合は論理和を用います。 論理演算 http://www.asahi-net.or.jp/~ax2s-kmtn/ref/logicope.html 参考:論理積の動作 入力1|入力2|出力 0 | 0 | 0 0 | 1 | 0 1 | 0 | 0 1 | 1 | 1
お礼
ありがとうございました!(*^^*)
補足
回答ありがとうございます。 やはり論理積なのですね。 他の方も言われた通り、問題の解釈をどうすればいいかが一番分からなくて。 左端だけを0、あとを全て1なのかと考えるとどの選択肢もあてはまらなくて混乱していました。 単純にマスク処理を求められているなら納得です。 大変ありがとうございました(*^^*)
- Tacosan
- ベストアンサー率23% (3656/15482)
問題もいろいろ解釈できそうだが.... それぞれの演算の意味, 理解してる?
補足
そうですね、仲間内でもまず文章の解釈で首を傾げていました。 どの演算が何を意味しているかはだいたい分かっているつもりですが(論理和=和集合、A∪B、orなど)まだまだ不慣れですので知識は浅いです。
補足
回答ありがとうございます。 そうですね、問題の意図が10000000を求めているなら選択肢にはありませんよね。 否定排他論理和というのは初めて聞きました。 排他的論理和=2つを比べて同じでないときに出力1、と私は覚えているのですが、それをまた逆に解釈するということでしょうか。