ITパスポート試験 ITパスポート 2018年 (平成30年 秋期)79: 8ビットの2進データXと00001111について,ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位,右方を下位とする。

ITパスポート 2018年 (平成30年 秋期)
Q 7979 / 100
8ビットの2進データXと00001111について,ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位,右方を下位とする。
この問の正解率:54.74%(749件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

8ビットの2進データXと00001111について,ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位,右方を下位とする。

選択肢

  • .下位4ビットが全て0になり,Xの上位4ビットがそのまま残る。
  • .下位4ビットが全て1になり,Xの上位4ビットがそのまま残る。
  • .上位4ビットが全て0になり,Xの下位4ビットがそのまま残る。
  • .上位4ビットが全て1になり,Xの下位4ビットがそのまま残る。

正解

. 上位4ビットが全て0になり,Xの下位4ビットがそのまま残る。

解説

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