基礎理論

基本情報技術者試験ビットマスク」の問題

テクノロジ系基礎理論計算問題難易度:normal
8ビットの値10110101に対し、マスク00001111との論理積(AND)をとった結果を10進数で表すとどれか。
181 のまま変化なし
176 になる
15 である
5 が得られる
正解
5 が得られる

ANDはマスクが1のビットだけ元の値を残し、0のビットを0にする。下位4ビットが1のマスクで上位4ビットが消え、残る0101=4+1=5となり正しい。

?選択肢ごとの解説

ア ×181は元の値10110101のままで、ANDによる上位ビットの消去を行っていない誤りである。
イ ×176は上位4ビット1011だけを残した値で、マスクの0と1を取り違えて上位を抽出してしまった誤りである。
ウ ×15はマスク00001111自体の値、またはORの結果と混同した誤りで、元値の下位ビットを反映していない。
エ ○ANDはマスクが1のビットだけ元の値を残し、0のビットを0にする。下位4ビットが1のマスクで上位4ビットが消え、残る0101=4+1=5となり正しい。

くわしく

ビットマスクはANDで特定ビットの抽出やクリアを行う。マスクが1の位置は元値を通し、0の位置は強制的に0にする。上位を残したいなら11110000を、下位を残したいなら00001111を用いるなどマスク設計が要点である。

本番での押さえどころ

試験のコツ

『AND=必要ビットだけ通す関所』『OR=ビットを立てる』『XOR=ビットを反転』と演算ごとの役割を固定する。

覚え方

ANDマスクは『フィルタ』。1の穴だけ通し0は塞ぐ、と覚えると抽出・クリアを間違えない。

よくある誤り

AND(残す)とOR(立てる)を混同する、またはマスクの1と0の意味を逆に解釈する誤りが多い。

基礎理論の他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0080

【基本情報技術者試験】ビットマスクの問題 — 解答・解説|ukamiru 過去問