- ベストアンサー
基本情報技術者試験の例題:上位6ビットを反転させる論理演算は?
- 基本情報技術者試験の例題で、8ビットのデータの上位6ビットを反転させる論理演算はどれか?
- 答えは16進数FCと排他的論理和をとることです。
- 排他的論理和を取ると上位6ビットが反転されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>排他的論理和を取るというのは、どういうことなのでしょうか? 排他的論理和とは ビットごとの足し算の1ビットバージョンと考えましょう。 2進数の足し算だと 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 ですが、排他的論理和(XOR)は1ビットバージョンなので 0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 (ここまでは足し算と同じ) 1 XOR 1 = 0 (足し算では10だが1ビットしか扱わないので繰り上がりは無視) 結果的には XOR の前後が同じなら0,異なれば1となります。 この見方を変えると 0とXORをとると、とる前のビットがそのままになります。 (前が0なら0と0とのXORで同じビットですから答えは0 前が1なら1と0とのXORで違うビットですから答えは1 どちらにしろ前のビットと答えのビットは一致しています) 1とXORをとると、前のビットが反転します。 (前が0なら0と1とのXORで違うビットですから答えは1 前が1なら1と1とのXORで同じビットですから答えは0 どちらにしろ、前のビットが反転したものが答えとなっています) つまり、特定のビットのみ反転させて、その他を保存することができます。 8ビットですと 0とXORをとっても前の値は変わりません FとXORをとると全ビットが反転します。 以下、詳しい説明は省きますが AND(論理積)を使うと特定のビットを0にし、他を保存できます 0とANDをとると(どんな値でも)必ず0になります。 FとANDをとると、とる前と変わりません。 Fを10進の1に見立てるとまるで掛け算のようです だから論理積と呼ばれます OR(論理和)を使うと特定のビットを1にし、他を保存できます 0とORをとると、とる前と変わりません。 FとORをとると、どんな値でもFになります。 ANDの掛け算に対し、ORは足し算に似ています。 (0を足しても何も変わりませんね) だから論理和と言われます
その他の回答 (2)
- 774danger
- ベストアンサー率53% (1010/1877)
排他的論理和=XOR http://www.asahi-net.or.jp/~AX2S-KMTN/ref/logicope.html#eor 真理値表を見てよく考えてみましょう
お礼
回答ありがとうございます! URLも参照させていただきました。試験にでてくる用語なども説明がされていたので、ブックマークしました。 この問題以外でも、利用させていただこうと思います。 大変ありがとうございました!!
- piro19820122
- ベストアンサー率38% (256/672)
NOT(否定)・OR(論理和)・AND(論理積)・XOR(排他的論理和)の意味は分かりますか? 「排他的論理和をとる」というのは、「入力値とFCでビットごとに排他的論理和の演算を行う」という意味です。
お礼
早速の回答、ありがとうございます! とる、という言葉に引っ掛かりすぎていました。 とても助かりました。 モチベーションがあがりましたので、引き続き頑張ります。 大変ありがとうございました!!
お礼
回答ありがとうございます! 詳しく説明していただけたので、応用が利くぐらい理解できました。 XORの問題がでればいいなぁ~とか思っちゃいます。 大変ありがとうございました!!