ビット演算によるマスク処理とは?
ビット演算によるマスク処理とは、AND・OR・NOTを組み合わせて特定のビットだけを取り出す・立てる・落とす操作。応用情報では、フラグ管理、サブネットマスクによるネットワークアドレスの算出、アクセス権の判定などの計算で問われる。
応用情報技術者試験の過去問では11回出題されています(2016年度〜2025年度)。
びっとえんざんによるますくしょり
ビット演算によるマスク処理の意味
AND・OR・NOTを組み合わせて特定のビットだけを取り出す・立てる・落とす操作。応用情報では、フラグ管理、サブネットマスクによるネットワークアドレスの算出、アクセス権の判定などの計算で問われる。
ビット演算によるマスク処理の具体例
状態をビットで持つとき、ANDで該当ビットが1かを検査し、ORで権限を追加し、ANDとNOTの組合せ(x AND NOT m)で剥奪する。IPアドレスとサブネットマスクのANDがネットワークアドレスになる。
ビット演算によるマスク処理は試験でどう引っ掛けられる?
「立てる」のはORで1を重ねる操作、「落とす」のはANDで0を掛ける操作。逆に覚えると結果が全く変わる。またマスクは論理演算であり、シフト演算のように桁位置を移動させるわけではない。
ビット演算によるマスク処理と関連する用語
ビット演算によるマスク処理が出た過去問
8ビットのデータX及びYの値をそれぞれ16進表現で0F, F0とするとき、8ビットのデータAの下位4ビットを反転させ、上位4ビットを0にする論理式はどれか。ここ…
正解:Aのみに否定線・X(Ā・X)
要点:反転はNOT、特定ビットの取り出しはANDマスクで行う
X=0F は下位4ビットだけが1のマスク、Y=F0 は上位4ビットだけが1のマスクです。「下位4ビットを反転」は A 全体の否定 Ā を取れば得られ、「上位4ビットを0にする」は 0F との論理積で実現できます。したがって Ā と X の論理積が求める式です。式全体に否定をかけると上位4ビットが逆に1で埋まってしまうため、否定は A だけにかける必要があります。
出典:平成28年度 秋期 応用情報技術者試験 午前 問1(IPA)クラスCのIPアドレスを分割して,10個の同じ大きさのサブネットを使用したい。ホスト数が最も多くなるように分割した場合のサブネットマスクはどれか。
正解:255.255.255.240
要点:必要な分割数を満たす最小のサブネットビット数を選ぶ
クラスCではホスト部が8ビットある。10個のサブネットを作るにはサブネット番号に4ビット必要(3ビットでは8個しか作れない)で、残るホスト部は4ビットとなる。上位4ビットを1にしたマスクは255.255.255.240である。
出典:平成28年度 春期 応用情報技術者試験 午前 問35(IPA)0以上255以下の整数nに対して、 next(n) = n+1 (0≦n<255)、0 (n=255) と定義する。next(n)と等しい式はどれか。ここで、x…
正解:(n+1) AND 255
要点:AND 255は下位8ビットのマスクで、256を0に折り返す
255は2進数で8ビット全てが1なので、AND 255は下位8ビットだけを残すマスクとして働く。n が0以上254以下なら n+1 は255以下に収まりマスクしても値は変わらず、n=255のときだけ n+1=256(2進数で1 0000 0000)となり、下位8ビットが全て0になるため結果は0になる。つまり255の次に0へ戻る循環がAND 255だけで表現できる。
出典:令和1年度 春期 応用情報技術者試験 午前 問1(IPA)次のIPアドレスとサブネットマスクをもつPCがある。このPCのネットワークアドレスとして、適切なものはどれか。 IPアドレス: 10.170.70.19 サブネ…
正解:10.170.70.16
要点:ネットワークアドレスはIPアドレスとサブネットマスクの論理積
サブネットマスク255.255.255.240は上位28ビットがネットワーク部で、第4オクテットの上位4ビットだけが有効である。19は2進数で0001 0011なので、下位4ビットを0にすると0001 0000=16となり、ネットワークアドレスは10.170.70.16になる。
出典:令和1年度 春期 応用情報技術者試験 午前 問34(IPA)マイコンの汎用入出力ポートに接続されたLED1を、LED2の状態を変化させずに点灯したい。汎用入出力ポートに書き込む値として、適切なものはどれか。ここで、使用さ…
正解:汎用入出力ポートから読み出した値と16進数の08との論理和
要点:特定ビットを立てるにはそのビットのマスクとの論理和を取る
LED1はビット3に接続されているので、そのビットだけを1にすればよい。ビット3に対応する値は16進数で08であり、現在の出力値と08との論理和を取れば、他のビット(LED2のビット6を含む)を保ったままビット3だけを1にできる。論理和はビットを立てる、論理積(ビット反転値との)はビットを落とす、という定石を押さえておきたい。
出典:令和3年度 秋期 応用情報技術者試験 午前 問23(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。