マスク (情報工学)
IPアドレスのマスクは IP ACL (アクセス制御リスト)で許可されるものと拒否されるものを指定するのに使われる。インタフェース上のIPアドレスを設定するマスクは、先頭が255で左側の方が大きい値になる。例えば、IPアドレス 209.165.202.129 に対して 255.255.255.224 というマスクが対応する。IP ACL のマスクはその逆で、例えば 0.0.0.255 となる。これを逆マスク (inverse mask) あるいはワイルドカードマスク (wildcard mask) と呼ぶこともある。このマスク値をバイナリ(0と1)で表すと、アドレスのビット列のうちどの部分を処理するかが示されている。0となっているビット位置のアドレスビットは考慮され(一致する必要がある)、1となっているビット位置のアドレスビットは考慮しない。
マスクの例:
バイナリ形式のマスクを見ると、先頭3オクテットは指定されたバイナリ形式のネットワークアドレス (00001010.
ここまでは、ビットをオンにする方法とオフにする方法を解説してきたが、両方を同時に行うにはどうすればよいだろうか。元の値がどうであろうと問題ではなく、単にビット列を反転させたい場合もある。この場合、XOR 演算を使う。XOR は、演算対象の相互のビット(通常は2つ)のうちいずれかのビットのみが 1 の場合に 1 を返す。つまり、2つのビットが共に 1 なら 0 を返す。また両方が 0 なら 0 を返す。結果として、対象とする相互のビットの状態が以前から反転した異なる状態に変えることができる。したがって、反転させたいビット列について全て 1 とのビット単位の XOR を行えば、元のビット列を反転したビット列が得られる。元のビットが 1 なら 1 XOR 1 = 0 となるし、元のビットが 0 なら 0 XOR 1 = 1 となる。
例: すべてのビットを反転する
特定のビットだけをオンにするには、ビット単位の論理和(OR)演算(ビットOR)を行なう。1とのOR演算結果は元の状態にかかわらず常に1となり、0とのOR演算結果は元の状態を維持するため、対象となるビット位置では1とのOR演算を行ない、変更を加えないビット位置では0とのOR演算を行なうようなビットパターンをマスクデータとして用いる。
例: LSBから4番目のビットをオンにする