ITパスポート過去問 平成30年度(2018年)問79
8ビットの2進データXと00001111について,ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位,右方を下位とする。
選択肢
- ア:下位4ビットが全て0になり,Xの上位4ビットがそのまま残る。
- イ:下位4ビットが全て1になり,Xの上位4ビットがそのまま残る。
- ウ:上位4ビットが全て0になり,Xの下位4ビットがそのまま残る。
- エ:上位4ビットが全て1になり,Xの下位4ビットがそのまま残る。
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
8ビットデータXと00001111でビットごとの論理積(AND)を取ると、マスクの上位4ビットは0なので結果の上位4ビットは全て0になります。マスクの下位4ビットは1なので結果の下位4ビットはXの下位4ビットがそのまま残ります。したがって正解は「ウ」です。
Point
この問題は、論理積(AND)の性質(0とANDすると0、1とANDすると元の値)を利用して、特定のビットだけを残すマスク処理を理解しているかを確認するものです。
解くために必要な知識
この問題を解くには、論理積(AND演算)の性質とマスク処理の理解が必要です。
用語の整理
| 用語名 | 意味 |
|---|---|
| 論理積(AND) | 2つのビットが両方1のときだけ結果が1になり、それ以外は0になる演算です。 |
| ビット | 0または1を表す情報の単位です。 |
| 2進データ | 0と1の並びで表現されたデータです。 |
| マスク処理 | 特定のビットだけを0にしたり、特定のビットだけを残したりするために、ANDやORなどの論理演算を使う操作です。 |
AND演算の基本規則
AND演算はビットごとに計算します。
| A | B | A AND B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
この規則から、次の性質が重要です。
-
A AND 0 = 0
-
A AND 1 = A
ビットマスク00001111の意味
00001111は、上位4ビットが0、下位4ビットが1のマスクです。
| マスクの部分 | 値 | AND演算で起きること |
|---|---|---|
| 上位4ビット | 0000 | 強制的に0になります。 |
| 下位4ビット | 1111 | Xの値がそのまま残ります。 |
問題の解法手順
解くための手順
1. マスクの0と1の位置を確認する
00001111を上位4ビットと下位4ビットに分けます。
-
上位4ビット:0000
-
下位4ビット:1111
2. ANDの規則を当てはめる
| マスク側のビット | ANDの結果 | 意味 |
|---|---|---|
| 0 | 0 AND x = 0 | その桁は必ず0になります。 |
| 1 | 1 AND x = x | その桁はXの値がそのまま残ります。 |
3. 上位側と下位側の結果をまとめる
-
上位4ビットは0になります。
-
下位4ビットはXの値が残ります。
よって正解は「ウ」です。
選択肢ごとの解説
- ア:不正解
誤りです。下位4ビットは1とのANDなので0に固定されず、Xの下位4ビットがそのまま残ります。
- イ:不正解
誤りです。下位4ビットは1とのANDなので強制的に1にはならず、Xの下位4ビットがそのまま残ります。
- ウ:正解
正しいです。上位4ビットは0とのANDで0になり、下位4ビットは1とのANDでXの値がそのまま残ります。
- エ:不正解
誤りです。00001111の上位4ビットは0000なので、上位4ビットが1になることはありません。
まとめ
8ビットデータXと00001111でビットごとの論理積(AND)を取ると、マスクの上位4ビットは0なので結果の上位4ビットは全て0になります。マスクの下位4ビットは1なので結果の下位4ビットはXの下位4ビットがそのまま残ります。したがって正解は「ウ」です。
テクノロジ系 > 基礎理論 > 基礎理論
誤りです。下位4ビットは1とのANDなので0に固定されず、Xの下位4ビットがそのまま残ります。
誤りです。下位4ビットは1とのANDなので強制的に1にはならず、Xの下位4ビットがそのまま残ります。
正しいです。上位4ビットは0とのANDで0になり、下位4ビットは1とのANDでXの値がそのまま残ります。
誤りです。00001111の上位4ビットは0000なので、上位4ビットが1になることはありません。