アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下の問題の回答を読んでも意味がわかりません。どなたか、もっと詳しく説明お願いします。


【問】
任意の8ビットのデータXと、8ビットのデータ00001111をビット毎に排他的論理和をとった結果はどれか。ここで、各1ビットのデータAとデータBの排他的論理和をとったCの値は次のように表される。また、データの左方を上位、右方を下位と呼ぶ。

A B C
‐‐‐‐‐‐‐‐
0 0 0
0 1 1
1 0 1
1 1 0

【選択肢】
ア、Xの上位4ビットすべての0、1が反転し、下位4ビットは全て1になる。
イ、Xの上位4ビットすべての0、1が反転し、下位4ビットはそのまま残る。
ウ、Xの上位4ビットはすべて0で、下位4ビットすべての0、1が反転する。
エ、Xの上位4ビットはそのままで、下位4ビットすべての0、1が反転する。


【解】


【解説】
問題文中の表からもわかるように、データBのある1桁の値が0だった場合、データAの値はそのままです。一方で、データBのある1桁の値が1であると、データAの値は必ず反転します。データBのビット列は、00001111ですから、データAの上位4ビットはそのまま、下位4ビットは全て反転すると考えられます。


解説の「~データAの値は必ず反転します」までは理解できるのですが、なんでいきなりデータBのビット列が00001111なのか意味が分かりません。これは表から読み取るもの?それともこの問題でデータBがデータXということを示しているのでしょうか。
情報系素人なもので、助言よろしくお願い致します!

A 回答 (3件)

「00001111」の出所は,問題文の「任意の8ビットのデータXと、8ビットのデータ00001111をビット毎に・・・」の「00001111」です。



分かりやすくするために、問題にある排他的論理和の表をタテ横ぎゃくにすると、

A | 0 0 1 1
B | 0 1 0 1
C | 0 1 1 0

AとBの排他的論理和の結果がCとなることを示しています。
Bが0であれば、Aのビットはそのままで、
Bが0であれば、Aのビットはそのままで、が反転(0は1に、1は0になる)することを示しています。

これを8ビット(8桁)の「各桁」について計算します。
例えば、データXが00110011なら、これと「00001111」の排他的論理和を計算すると、
「0000」となっている上位はそのままなので「1100」となり、「1111」となっている下位は反転するので「0011」となり、全体は、

 11000011

になります。

もう一つ計算すると、データXが01011001なら上位「0101」がそのまま、下位「1001」が反転するので「0110」で、

 01010110

となります。

(補足)上記表は、Aを基にして「Aが1のときBが反転し、Aが0のときBはそのまま」ということもできます。

(蛇足?)【解説】の「データBのビット列は、00001111ですから、」という表現が悪いのかも。AとかBとかいうから「何がデータB?」という混乱が生じます。
私ならサラっと「00001111との排他的論理和なので」と言います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
例題風に解説してくださり、とても分かりやすかったです。

お礼日時:2011/10/15 15:13

>なんでいきなりデータBのビット列が00001111なのか



解説者が表中のABと8ビットデータとしてのABの区別をきちんとしていないから分かりづらくなっている。
前者のABは排他的選言を定義するための0か1をとる変数(1ビットのデータと考えてもよいかも)。

解説の後半を空気を読んで書きかえるとこうなるかな。
任意の8ビットのデータをaとする
ビット列00001111をbとする
aとbとの排他的論理和は上位4ビットがaの上位4ビット、下位4ビットがaの下位4ビットを反転したものになる
    • good
    • 0
この回答へのお礼

解説ありがとうございます!理解できました

お礼日時:2011/10/15 15:12

与えれた値を A、 制御する値を B、 結果を C と考えます。


制御する値が 0 の時は、与えらえた値が 0 のときは 結果が 0 になります。
与えられた値が 1 の時は結果が 1 になります。
即ち、与えられた値と結果が同じ0,1が同じです。
制御する値が 1 の時は、与えらえた値が 0 のときは 結果が 1 になります。
与えられた値が 1 の時は 結果が 0 になります。
即ち、与えらえた値と結果が反転しています。
8ビットの00001111を制御するするあちと考えると エ となります。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2011/10/15 15:12

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