• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:どなたか、この問題を解いて教えてください。。)

基本情報技術者試験の例題:上位6ビットを反転させる論理演算は?

このQ&Aのポイント
  • 基本情報技術者試験の例題で、8ビットのデータの上位6ビットを反転させる論理演算はどれか?
  • 答えは16進数FCと排他的論理和をとることです。
  • 排他的論理和を取ると上位6ビットが反転されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLK314
  • ベストアンサー率55% (84/152)
回答No.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を足しても何も変わりませんね) だから論理和と言われます

eemmmiiii
質問者

お礼

回答ありがとうございます! 詳しく説明していただけたので、応用が利くぐらい理解できました。 XORの問題がでればいいなぁ~とか思っちゃいます。 大変ありがとうございました!!

その他の回答 (2)

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.2

排他的論理和=XOR http://www.asahi-net.or.jp/~AX2S-KMTN/ref/logicope.html#eor 真理値表を見てよく考えてみましょう

eemmmiiii
質問者

お礼

回答ありがとうございます! URLも参照させていただきました。試験にでてくる用語なども説明がされていたので、ブックマークしました。 この問題以外でも、利用させていただこうと思います。 大変ありがとうございました!!

回答No.1

NOT(否定)・OR(論理和)・AND(論理積)・XOR(排他的論理和)の意味は分かりますか? 「排他的論理和をとる」というのは、「入力値とFCでビットごとに排他的論理和の演算を行う」という意味です。

eemmmiiii
質問者

お礼

早速の回答、ありがとうございます! とる、という言葉に引っ掛かりすぎていました。 とても助かりました。 モチベーションがあがりましたので、引き続き頑張ります。 大変ありがとうございました!!

関連するQ&A