按位与运算&:

只有对应的两个二进位均为1时,结果位才为1,否则为0。
比如8&4,其实就是1000&100=0,因此8&4=0
二进制中,与1相&就保持原位,与0相&就为0

位运算:

左移<<

把整数a的各二进位全部左移n位,高位丢弃,低位补0。左移n位其实就是乘以2的n次方

由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性
-6<<29=1073741824 符号变为正数

>>右移

把整数a的各二进位全部右移n位,保持符号位不变。右移n位其实就是除以2的n次方取其整数部分

为正数时, 符号位为0,最高位补0
为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定