位运算的运算符共有以下六种:&(按位与),|(按位或),^(按位异或),~(取反),<<(左移),>>(右移)。注:这六种都是在二进制中进行运算的。
下面一一介绍它们的用法。
1,按位与运算
eg:3&9
首先写出各自的二进制
3:00000011
9:00001001
然后一位一位的对比都为1就为1,否则为0
得出结果为00000001
2,按位或运算
eg:3|9
首先写出二进制
3:00000011
9:00001001
然后一一对比有一位上全是0才为0,否则为1.
得出结果为00001011
3,按位异或运算
eg:3^9
首先写出二进制
3:00000011
9:00001001
然后一一对比当两数在同一位上数字不同时该位为1,否则位0.
4,求反运算
eg:~9
首先写出二进制
9:0000000000001001
然后对每一位上的数取反,0变1,1变0
得:1111111111110110
5,左移运算
eg:a=3,a<<2
首先写出二进制
3:00000011
然后把每一位向左移动两位,高位丢弃,低位补0
得:00001100
注:也可以看成3乘以2的平方算出结果后写出结果的二进制。
6,右移运算
eg:a=5,a>>2
首先写出二进制
5:00000101
然后把每一位向右移动两位,高位补1(负数)或0(正数),低位丢弃
得:00000001
注:当是负数经行前三种运算时应用补码经行运算。补码的求法为:
eg:-3
先写出3的二进制
3:00000011
然后取反得:11111100
然后在首位补上1(负数)或0(正数)【首位为符号位】
这里就补上1
为11111101