易百教程

使用按位运算符检查掩码标志

可以使用以下语句定义掩码:

unsigned int male       = 0x1;         // 掩码选择第一个(最右边)位
unsigned int developer     = 0x2;         // 掩码选择第二位
unsigned int tester     = 0x4;         // 掩码选择第三位
unsigned int coder    = 0x8;         // 掩码选择第四位
unsigned int manager    = 0x10;        // 掩码选择第五位

在每种情况下,1位将指示特定条件为真。这些二进制掩码每个都挑出一个单独的位。
可以有一个unsigned int变量personal_data,它可以存储关于一个人的五项信息。
如果第一位是1,则是男性,如果第一位是0,则是女性。
如果第二位是1,则该人是开发人员。

if(personal_data & tester){
  /* tester */
}

可以使用OR运算符使用掩码设置变量中的各个位。设置personal_data以将某人记录为开发人员:

personal_data = personal_data|developer;  // 设置第二位为 1

personal_data中右边的第二个位将设置为1,所有其他位将保持原样。
可以在一个语句中设置多个位:

personal_data |= developer | tester | male;

要将male位更改为female,请使用~运算符和按位AND:

personal_data &= ~male;                // 重置male更改为female