午前問79
8ビットの2進データ X と 00001111 について、ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位、右方を下位とする。
| 下位4ビットが全て0になり、Xの上位4ビットがそのまま残る。 | |
| 下位4ビットが全て1になり、Xの上位4ビットがそのまま残る。 | |
| 上位4ビットが全て0になり、Xの下位4ビットがそのまま残る。 | |
| 上位4ビットが全て1になり、Xの下位4ビットがそのまま残る。 |
『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- ウ
解説
8ビットのデータXと00001111でビットごとの論理積(AND)を行うと、マスク側が0の位置は必ず0になり、1の位置は元のビットがそのまま残ります。00001111は左側4ビットが0、右側4ビットが1なので、結果は上位4ビットがすべて0になり、下位4ビットにXのビット列がそのまま残ります。例えばXを"10101010"や"11001100"と仮定してANDをとっても、同じ性質が確認できます。したがって正解はウです。
| ア. | 下位4ビットが全て0になり、Xの上位4ビットがそのまま残る。 |
| 下位4ビットが0になるのは11110000のようなマスクとANDをとった場合です。00001111では下位が1なので、下位は残り、上位が0になります。誤りです。 | |
| イ. | 下位4ビットが全て1になり、Xの上位4ビットがそのまま残る。 |
| AND演算でビットを1に固定することはできません。マスクが1でも、対応するXが0なら結果は0です。下位4ビットがすべて1になるとは限らないため誤りです。 | |
| ウ. | 上位4ビットが全て0になり、Xの下位4ビットがそのまま残る。 |
| マスク00001111は上位が0、下位が1なので、上位4ビットは0に、下位4ビットはXの値がそのまま残ります。正しい記述です。 | |
| エ. | 上位4ビットが全て1になり、Xの下位4ビットがそのまま残る。 |
| ANDでマスク側が0の位置を1にすることはできません。上位4ビットをすべて1にすることは不可能です。誤りです。 |