ビット演算によるマスク処理とは?びっとえんざんによるますくしょり
ビット演算によるマスク処理とは、AND・OR・NOTを組み合わせて、特定のビットだけを取り出す・立てる・落とす操作。検査はANDで該当ビットを残し、追加はORで1を重ね、剥奪はANDとNOTの組合せ(x AND NOT m)で行う。午前I(科目A-1)ではフラグ管理、サブネットマスクによるネットワークアドレスの算出、アクセス権の判定として現れる。
最終更新:2026-10-07
この語が出る過去問を解く →背景
1バイトに8個の状態を詰め込めば、記憶容量も比較回数も8分の1で済む。メモリが高価だった時代に生まれた節約の技法だが、現在も状態フラグ・権限ビット・IPアドレスの区切りのように「1語の中に意味の異なる区画がある」データが残っており、その区画を境界どおりに切り出す手段として使われ続けている。専門がネットワークやPMの受験者にとってはアルゴリズム分野の穴になりやすい。
具体例
IPアドレス192.168.10.200とサブネットマスク255.255.255.192のANDを取ると192.168.10.192がネットワークアドレスになる。権限を8ビットで持つ設計なら、読み取り権のビットが1かをANDで検査し、書込み権をORで追加する、という使い分けになる。
試験での引っ掛け
ビットを立てるのがOR(1を重ねる)、落とすのがAND(0を掛ける)で、この対応を逆に覚えると結果が全く変わる。マスクは桁の値を書き換える論理演算であって、シフト演算のように桁位置そのものを移動させるわけではない。XORは指定ビットの反転で、立てる操作とは別物である。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成31年度 春期 高度試験 午前Ⅰ 問1(IPA)解説で登場
0以上255以下の整数nに対して、 next(n) = n+1 (0≦n<255)、0 (n=255) と定義する。next(n)と等しい式はどれか。ここで、x…
正解:(n+1) AND 255
要点:全ビット1の値とのANDは、下位桁を残す剰余マスクになる
255は2進数で8ビットが全て1(11111111)である。n+1を255とビットANDすると、下位8ビットだけが残り、それより上位の桁は切り捨てられる。n<255のときn+1は255以下なので値はそのまま、n=255のときn+1=256(100000000)は下位8ビットが全て0なので結果は0となり、定義どおりの動作になる。ビットマスクによる剰余(mod 256)の典型パターンである。
出典:令和3年度 秋期 高度試験 午前Ⅰ 問11(IPA)
IPv4ネットワークにおいて、あるホストが属するサブネットのブロードキャストアドレスを、そのホストのIPアドレスとサブネットマスクから計算する方法として、適切な…
正解:サブネットマスクの各ビットを反転したものとIPアドレスとの論理和を取る。
要点:ブロードキャストはマスク反転とIPの論理和で求める
ブロードキャストアドレスは、ネットワーク部はそのままでホスト部のビットをすべて1にしたアドレスである。サブネットマスクを反転するとホスト部だけが1のビット列になるので、これとIPアドレスの論理和を取ればホスト部が全て1、ネットワーク部は元のままとなり、目的のアドレスが得られる。
出典:令和3年度 春期 高度試験 午前Ⅰ 問10(IPA)
IPv4ネットワークで使用されるIPアドレスaとサブネットマスクmからホストアドレスを求める式はどれか。ここで、“~”はビット反転の演算子、“|”はビットごとの…
正解:a & ~m
要点:ホストアドレスは a & ~m、ネットワークアドレスは a & m
サブネットマスクmは、ネットワーク部のビットが1、ホスト部のビットが0になっている。したがってホスト部だけを取り出すには、マスクを反転してホスト部だけが1のパターン(~m)を作り、アドレスaとビットごとの論理積をとればよい。すなわちa & ~mでホストアドレスが得られる(a & mならネットワークアドレスになる)。
出典:令和5年度 秋期 高度試験 午前Ⅰ 問10(IPA)
サブネットマスクが255.255.252.0のとき、IPアドレス172.30.123.45のホストが属するサブネットワークのアドレスはどれか。
正解:172.30.120.0
要点:/22ではIPとマスクの論理積で第3オクテットが120になる
サブネットマスク255.255.252.0はプレフィックス長22ビットで、第3オクテットの上位6ビットまでがネットワーク部となる。123(01111011)と252(11111100)の論理積は120(01111000)なので、サブネットワークアドレスは172.30.120.0である。
出典:令和5年度 春期 高度試験 午前Ⅰ 問1(IPA)解説で登場
0以上255以下の整数nに対して、 next(n) = n+1 (0≦n<255)、0 (n=255) と定義する。next(n)と等しい式はどれか。ここで、x…
正解:(n+1) AND 255
要点:2のべき乗マイナス1とのANDは剰余を求める操作と同じ
255は2進数で下位8ビットが全て1のビットマスクなので、これとの論理積は値を下位8ビットだけに切り詰める働きをする。nが254以下ならn+1は255以下に収まりそのまま残り、n=255のときはn+1=256=100000000(2)となって下位8ビットが全て0、すなわち0になる。この折り返しの挙動が定義と完全に一致する。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。