1. & 与运算
即求两数的补码,同一位置都为1取同1,其他情况取 0,(补码符号位不变)。
如果运算结果符号位为1,则需要对运算结果进行求补码操作,为0不做操作。
空格隔开的1或0是符号位
例如: 2&3 = 2
2 的二进制补码为 0 10
3 的二进制补码为 0 11
运算结果为0 10 即 2
例如: -2&-3 = -4
2 的二进制原码为 1 10 补码为 1 10
3 的二进制原码为 1 11 补码为 1 01
与运算后为1 00 ,符号位为1求其补码
求补码为1 100 即 -4
例如: 19&-12 = 16
19 的二进制补码为0 10011
12 的二进制原码为1 01100 补码为1 10100
运算结果为0 10000 即 16
2. << 按位左移运算符
即将十进制数转化为二进制后,左移
m<<n,为m的二进制左移n位
例如:2<<1 = 4
2 的二进制为 10
左移一位为 100 即为 4
例如:2<<2 = 8
2 的二进制为 10
左移两位为 1000 即为 8
例如:3<<2 = 12
3 的二进制为 11
左移两位为 1100 即为 12
例如:3<<3 = 24
3 的二进制为 11
左移三位为 11000 即为 24
3. >> 按位右移运算符
即将十进制数转化为二进制后,右移
m>>n,为m的二进制右移n位
例如:2>>1 = 1
2 的二进制为 10
右移一位为 1 即为 1
例如:8>>2 = 2
8 的二进制为 1000
右移两位为 10 即为 2
例如:19>>3 = 2
19 的二进制为 10011
右移三位为 10 即为 2
例如:19>>2 = 4
19 的二进制为 10011
右移两位为 100 即为 4