这四种运算符都是在2进制的情况下进行的
如10的二进制为00001010(八位)
1的二进制为00000001
1、按位与(&):10&1的结果就是两个二进制数相同位进行按位与,即有0则结果为0,都是1则结果为1
00001010
00000001=00000000
可用来判断一个数的奇偶,如11的二进制数按位与1的二进制数
00001011&00000001=00000001
代码为 if (num &1 ) num为奇则为真,为偶则为假
2、按位或(|):按位或与按位与相似,但运算规则相反,两个数二进制下 的相同位有1个为1则结果为1,都是0结果才为0;
如10|1的结果为00001011,即十进制的11;
00001010
00000001=0001011
3、按位取反(~):二进制下的该数每位取反,0变1、1变0;
如 ~10 的结果为11110101,即为十进制的-11,
4、异或(^):二进制下于相同位数的数相同为假,不同为真。即0 0或1 1的结果为0(二进制下),0 1或1 0的结果为1;
5、左移运算符:num<<n;二进制下的数每一位向左移n位,移动的位数由右操作数指定,右操作数必须是非负值,其右边空出的位用0填补,高位左移溢出则舍弃该高位。
如 10<<1 的结果就为00010100即为十进制下的20.
把一个数左移n位,相当于这个数乘上2^n.
6、左移运算(>>): num>>n;二进制下的数每一位向右移n位,移动的位数由右操作数指定,右操作数必须是非负值,其左边空出的位用0填补,低位右移溢出则舍弃该低位。
如 10>>1 的结果为00000101,即为10进制下的5。
把一个数右移n位,相当于这个数除以2^n.