ビット演算
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