ITパスポート 2018年 (平成30年 秋期) 問79「8ビットの2進データXと00001111について,ビットごとの論理積をとった結果…」の正解と解説です。ITパスポート試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約55%です。
正解
ウ. 上位4ビットが全て0になり,Xの下位4ビットがそのまま残る。
正答率 54.7%(749人中 410人が正解)
問題の解説
AND(論理積)のビットマスク演算の原理:マスクが0の部分は元データに関わらず強制的に0、マスクが1の部分は元データの値がそのまま保持される。マスク値00001111は上位4ビットが0000(強制ゼロ化)・下位4ビットが1111(元データ保持)。したがってX AND 00001111の結果は上位4ビットが全て0、下位4ビットはXの元の値が保持される。この性質を利用して特定のビット範囲を取り出す「ビットマスク(抽出)」操作は、フラグ管理・IPアドレスのネットワーク部抽出等に広く使われる。
選択肢ごとの解説
- 誤り。マスク00001111の上位4ビットは0なので、AND演算で上位4ビットは全て0になる(Xの上位ビットが残るという説明は誤り)。0 AND X=0というAND演算の基本性質により、マスクが0の部分の演算結果は元データの値に関わらず必ず0になる。
- 誤り。AND演算でマスクが1の部分の結果は元データの値(0または1)がそのまま保持されるため「全て1になる」わけではない。1 AND 0=0、1 AND 1=1というAND演算の性質により、下位4ビットはXの元の値がそのまま反映される。全て1になるのはORマスクでマスクが1の場合。
- 正解。AND演算ではマスク0の部分が強制ゼロ化(上位4ビット→全て0)・マスク1の部分が元データ保持(下位4ビット→Xの値をそのまま反映)となる。マスク00001111を使ったAND演算は下位4ビットの値を抽出し上位4ビットをゼロクリアするビット操作として活用される。
- 誤り。マスクの上位が0000なのでAND演算で上位4ビットは強制的に0になり全て1になることはない。マスクが0の部分が1になる演算はANDではなく0 OR X=X(ORでマスクが0の部分)の場合の話であり、ANDとORの演算特性を混同した誤りとなる。
ITパスポート 2018年 (平成30年 秋期) の過去問一覧に戻る・問79