位运算
位操作符号
& 按位与运算符
规则:按二进制位进行与运算,相应的两个二进制位如果都为1则该位的运算结果都是1,否则为0
i&j=10&7=2 这个会转换成二进制代码,然后一位一位的进行比较,然后最后计算出结果
| 按位或运算符
规则:按二进制位进行或运算.相应的两个二进制位只要有一个为1,则该位的运算结果就为1
i|j=10|7=15
^ 按位异或运算符
规则:按二进制位进行异或运算,规则是:相应的两个二进制位如果相同则该位的运算结果就为0,否则就是1
ij=107=13
~ 按位取反运算符
规则:按位取反运算符,用来对一个二进制数按位取反,比如 0001010 取反之后就变成了 11110101
<< 左移运算符
左移运算符<<用来将一个数的各个二进制位向左移动若干位
a=a << 2;
结论:左移动n位相当于该数乘以2的n次方 ,注意:为了防止这个溢出,最高位移动的时候不应该是1
右移运算符
用来将一个数的各个二进制位向右移动若干位,右边被移动的位被舍弃
移动n位相当于除以2的n次方
逻辑右移:最高位移入0的称为逻辑右移动
算数右移:最高位移入1的称为算数右移动