位操作符
为操作符对于他们的操作数的各个位执行AND、OR、和XOR等逻辑操作。同样,汇编语言程序员对于这类的操作已经是非常的熟悉了(求大神,我在贴吧见过)。当两个位进行进行AND
操作时,如果两个位都是1,结果是1,否则结果是0。当两个位进行OR操作时,如果两个位都是0,结果是0,否则结果是1.最后,当两个位进行XOR操作时,如果两个位不同,结果是1,如果两个位相同,结果为0.
举例说明,假定变量a的二进制为00101110,变量b的二进制值为01011011.a&b的结果是00001010,a|b的结果是0111111,a^b的结果是011110101.
位的操纵
下面的表达式显示了你可以怎么样使用移位操作符和位操作符来操纵一个整型值中的单个位。表达式假定变量bit_number为一整型值,它的范围是从0到整型值的位数减1,并且整型值的位从右向左计数。
第一个例子是把指定的位设置为1,value=value|1<<bit_number
这个例子把指定的位清0.(~操作符是取反,将个操作数求补。即1变成0,0变成1)
value=value & ~(1<<bit_number);
这些变大是常常写成|=和&=操作符的形式。
最后这个例子是对指定向位进行测试,如果该位已经被设置为1,则表达式的结果为非零值。
value&1<<bit_number