ビット演算

8ビットのビット列の下位4ビットが変化しない操作はどれか。 [平成17年度春期 基本情報技術者試験]

 16 進表記 0F のビット列との論理積をとる。
 16 進表記 0F のビット列との論理和をとる。
 16 進表記 0F のビット列との排他的論理和をとる。
 16 進表記 0F のビット列との否定論理積をとる。

16 進表記 0Fを 8ビットで表すと、0000 1111

1010 1010という仮の値を設定して、各選択肢を検証してみましょう。

 16 進表記 0F のビット列との論理積をとる。
1010 1010 AND 0000 1111

1010 1010
0000 1111

                • -

0000 1010 ←下位4ビットが変化ていない が正解
1をかけるので、どんな数字もそのまんま。



 16 進表記 0F のビット列との論理和をとる。
1010 1010 OR 0000 1111

1010 1010
0000 1111

                • -

1010 1111←下位4ビットが変わってしまっている ×



 16 進表記 0F のビット列との排他的論理和をとる。
1010 1010 XOR 0000 1111

1010 1010
0000 1111

                • -

1010 0101←下位4ビットが変わってしまっている ×※XOR(排他的論理和)は、入力が0か1の時だけ1を出力する。



 16 進表記 0F のビット列との否定論理積をとる。
1010 1010 NAND 0000 1111

1010 1010
0000 1111

                • -

1111 0101←下位4ビットが変わってしまっている ×
※NAND(否定論理積)は論理和の真逆



(確認) 
16進表記 0Fを 10進数で表すと15
15を2進数で表すと1111