&= 位逻辑与赋值
如:pbit-> b&=3;
****************************************************
|= 位逻辑或赋值
pbit-> c|=1;
****************************************************
^= 位逻辑异或赋值
pbit-> c^=1;
****************************************************
解析:
a |= x 相当于 a = a | x,其他依此类推。
详细例子:
void testBitCal()
{
struct bs
{
unsigned a:1;
unsigned b:3;
unsigned c:4;
} bit,*pbit;
bit.a=1;
bit.b=7;
bit.c=15;
printf( "%d,%d,%d/n ",bit.a,bit.b,bit.c);
pbit=&bit;
pbit-> a=0;
pbit-> b&=3;
pbit-> c|=1;
printf( "%d,%d,%d/n ",pbit-> a,pbit-> b,pbit-> c);
}
运行结果为:
1,7,15
0,3,15
请按任意键继续. . .
PS: unsigned a:1;指的是unsigned int a:1;