電子書籍の厳選無料作品が豊富!

最上位をパリティビットとする8ビット符号において、パリティビット以外の下位7ビットを得るためのビット演算はどれか。

ア 16進数0FとのANDをとる
イ 16進数0FとのORをとる
ウ 16進数7FとのANDをとる
エ 16進数FFとのXOR(排他的論理和)をとる

解答 ウ

なぜ ウ の7FとのANDなのかさっぱり分かりません。ウだと2進数にした場合

01111111

ですよね?なぜこうなるのか分からないのです。
解説お願いします。

A 回答 (3件)

0 AND 0 = 0


0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
だから。
つまり、「0」とANDを行うことで不必要な部分は確実に0にでき、
「1」とANDをとることで「0」なら「0」、「1」なら「1」を求めることができる。

>パリティビット以外の下位7ビットを得るためのビット演算はどれか。
だから、最上位ビットだけ0にする方法が答え。
    • good
    • 0

元のビットが、abcdefgh (a~hは1か0)


とする。
ア 16進数0FとのANDをとる
abcdefgh
00001111
---------
0000efgh
下位4ビットを得る。
イ 16進数0FとのORをとる
abcdefgh
00001111
---------
abcd1111
こんなの。
ウ 16進数7FとのANDをとる
abcdefgh
01111111
---------
0bcdefgh
下位7ビットを得る。
エ 16進数FFとのXOR(排他的論理和)をとる
abcdefgh
11111111
---------
a'b'c'd'e'f'g'h' (a'~h'はNOT(a~h))
各ビットの反転。
    • good
    • 0

ウの7FとのANDをとる方法を実際にやってみれば判ります。



01111111
これと、他の8ビットの数字のANDを取ると最上位ビットは必ず0になります。最上位ビット(パリティビット)が1でも、
01111111
1abcdefg
--------
0abcdefg
ビットごとのANDなので
0 AND 1=0
だからです。
他のビットは
1 AND a=a
1 AND b=b
1 AND c=c
1 AND d=d
1 AND e=e
1 AND f=f
1 AND g=g
とそれぞれのビットの値が直接取得できるので、問題にある
「パリティビット以外の下位7ビットを得る」
には、最上位ビットを0でマスクした7FとのANDをとるのが正解になります。
    • good
    • 0

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