//位运算
int main()
{
int a=3;
int b=4;
return 0;
}
0000 1110
0000 1001
--------------
&0000
异或 相同为零 不同为1
按位与“&”:两个相应的二进制位中都为1,该位的结果值为1,例:
101010
& 110011
= 100010
按位或“|”:两个相应的二进制位中只要有一个为1,该位的结果值为1,
按位异或“^”:若参加运算的两个二进制位值相同则为0,否则为1,
~取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
<<左移
用来将一个数的各二进制位全部左移N位,右补0
左移,相当于乘以2的n次方,例如:1<<6 相当于1×64=64,3<<4 相当于3×16=48
<<< 左移
表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
右移>>
将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0
右移,相当于除以2的n次方,例如:64>>3 相当于64÷8=8
右移 >>>
表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0