1、按位与(&)
运算规则:1&1=1, 1&0=0, 0&1=0, 0&0=0
即:与0相与可清零;与1相与可保留原值
例:
51 & 5 -> 00110011 & 00000101 = 00000001 -> 51 & 5 = 1
如需要取10101110中的低四位,
10101110 & 00001111 = 00001110
2、按位或(|)
运算规则:0|0=0, 0|1=1, 1|0=1, 1|1=1
即:参加运算的两个对象只要有一位有1,结果则为1。
例:
3|5
->0000 0011 | 0000 0101 = 0000 0111
3、异或运算(^)
运算规则:1^1=0, 1^0=1, 0^1=1, 0^0=0
即:两个值不同,则为1,否则为0
异或运算也叫半加运算,同加法规则相同,只是不带进位。
特殊用法:
a ^ 0 = a
a ^ b ^ a = b
a ^ a = 0
a ^ b = b ^ a
a ^ b ^ c = a ^ ( b ^ c ) + ( a ^ b ) ^ c
例:用于两个变量值的交换
a = a ^ b;
b = b ^ a;
a = a ^ b;