位操作符操作需要先将十进制数转化为二进制数,若二进制数位数不一样,通过补0将位数补至一样,再按位操作。
1、$ 与
5 & 1
//101 & 001 = 1
2、| 或
5 | 1
//101 | 001 = 101 = 5
3、~ 非
~5
5的二进制原码:0000 0000 0000 0000 0000 0000 0000 0101
取反操作:1111 1111 1111 1111 1111 1111 1111 1010
取反操作后为负数,有符号整数都是用补码来表示,而补码=反码+1
1.先求反码(符号位不变):1000 0000 0000 0000 0000 0000 0000 0101
2.再求补码(最后一位+1):1000 0000 0000 0000 0000 0000 0000 0110
最高位代表符号位 1 表示负数,0 表示正数
~5 = -6
4、^ 异或
5 ^ 1
//101 ^ 001 = 100 = 4
5、<< 左移
5 << 1
//101 << 1 = 1010 = 10
6、>> 右移
5 >> 1
//101 >> 1 = 010 = 2
转载自文章:https://blog.csdn.net/foreverling_ling/article/details/61417649