1 =、|=和&=的作用
在位运算中我们经常使用赋值符合=,|=和&=,它们的作用分别是
1)赋值语句a = (1<<2)中,a的bit2位为1,其余位为0,如在32bit系统中,a 的值为0x4。
2)运算语句a |= (1<<2)中,a的bit2位被置1,其余位保持不变,如在32bit系统中,a的原值为0x8,则运算结果为0xc。
3)运算语句a &= (0<<2)中,a的所有位被置0,如在32bit系统中,a的原值为0xc,则运算结果为0x0。
2 实例验证
例程代码
-
#include <stdio.h>
-
void main()
-
{
-
-
unsigned int a = 0x8;
-
unsigned int b = 0x8;
-
unsigned int c = 0x8;
-
a = (1<<2); // 4
-
b |= (1<<2); // C
-
c &= (0<<2); // 0
-
unsigned int d = 0x8;
-
unsigned int e = 0x8;
-
unsigned int f = 0x8;
-
d = (1<<4); //10
-
e |= (1<<4); // 18
-
f &= (0<<4); // 0
-
printf("a = 0x%x, b = 0x%x, c = 0x%x \nd = 0x%x, e = 0x%x, f = 0x%x\n ",a,b,c,d,e,f);
-
}
运行结果验证了1中的结论。
阅读(2471) | 评论(0) | 转发(0) |