プロが教えるわが家の防犯対策術!

基本情報技術者試験の勉強中なのですが、この例題が、解説を読んでもわかりません。項目は論理演算です。どなたか、教えていただけないでしょうか?

【問題】
8ビットのデータの下位2ビットを変化させずに、上位6ビットのすべてを反転させる論理演算はどれか?

ア 16進数03と排他的論理和をとる
イ 16進数03と論理和をとる
ウ 16進数FCと排他的論理和をとる
エ 16進数FCと論理和をとる

【答え:ウ】

【解説】16進数FCは11111100です。排他的論理和を取ると、上位6ビットは反転され、下位2ビットはそのままとりだせます。

と、書いてあります。2進数に変換するまではわかるのですが、排他的論理和を取るというのは、どういうことなのでしょうか?

すみませんが、宜しくお願いします。

A 回答 (3件)

NOT(否定)・OR(論理和)・AND(論理積)・XOR(排他的論理和)の意味は分かりますか?



「排他的論理和をとる」というのは、「入力値とFCでビットごとに排他的論理和の演算を行う」という意味です。
    • good
    • 0
この回答へのお礼

早速の回答、ありがとうございます!

とる、という言葉に引っ掛かりすぎていました。
とても助かりました。

モチベーションがあがりましたので、引き続き頑張ります。
大変ありがとうございました!!

お礼日時:2009/02/26 02:43

排他的論理和=XOR


http://www.asahi-net.or.jp/~AX2S-KMTN/ref/logico …

真理値表を見てよく考えてみましょう
    • good
    • 1
この回答へのお礼

回答ありがとうございます!

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

大変ありがとうございました!!

お礼日時:2009/02/26 02:48

>排他的論理和を取るというのは、どういうことなのでしょうか?



排他的論理和とは
ビットごとの足し算の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を足しても何も変わりませんね)
だから論理和と言われます
    • good
    • 1
この回答へのお礼

回答ありがとうございます!

詳しく説明していただけたので、応用が利くぐらい理解できました。
XORの問題がでればいいなぁ~とか思っちゃいます。

大変ありがとうございました!!

お礼日時:2009/02/26 02:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!