可以使用以下语句定义掩码:
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