A & B ビットAND演算子
A&B。読んでそのままAかつB。
ABともにビットが立っている場合、1.
それ以外の場合は0.
00010101
10000111
--------
00000101
A | B ビットOR演算子
AorB。AまたはB。
AまたはBのどちらか1つでもビットが立っている場合、1.
それ以外の場合は0.
00010101
10000111
--------
10010111
A ^ B ビットXOR演算子
AとBのビットで不一致のものが1.
それ以外の場合は0.
00010101
10000111
--------
10010010
Aに対し、Bのビットで1を指定した項目の0と1が反転される、という風に考えることもできる。
~A ビットNOT演算子
00010101 A
11101010 ~A
FileAttributes
C#のファイル属性もビットフィールドになっている。
具体的な使い方は以下のようにTargetのFileAttributesと判定したいAttributesをビットAND演算子でつなぎ、判定したいAttributesと一致するかを判定する。回りくどく感じるが。
具体的には以下のような感じ。
if ((fileAttributes & FileAttributes.Hidden) == FileAttributes.Hidden) return;
if ((fileAttributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) return;
if ((fileAttributes & FileAttributes.System) == FileAttributes.System) return;
Systemファイル以外というような条件の場合、下記のようにも書ける。
if ((fileAttributes & FileAttributes.System) == 0)
{
処理();
}
FileAttributes 列挙型 (System.IO)
ファイルとディレクトリの属性を提供します。
コメント