ビットフラグの基本的な操作

ビットフラグの基本的な操作についてまとめました。
各種機能をビットフラグで管理する処理では、次の3パターンを抑えればOKです。

特定のビット有無を確認する

確認したいビットとANDを取ります

if (bitflag & 0x10){
    // bitflagに0x10のビットが立っている
}

 
特定のビットを立てる

立てたいビットとORを取ります

// bitflagに0x10を立てる
bitflag |= 0x10;

 
特定のビットを落とす

落としたいビットを反転させてANDを取ります

// bitflagの0x10を落とす
bitflag &= ~0x10;

※落としたいビットの有無を確認してxorを取る方法もありますが、1行で済ませる方がスッキリしますね↓

// bitflagの0x10を落とす(xor版)
if (bitflag & 0x10){
    bitflag ^= 0x10;
}