一、定义
1、原码
一个整数,按照绝对值大小转换成的二进制数,称为原码。
Math.abs
2、反码
将二进制数按位取反,所得的新二进制数称为原二进制数的反码。(反码是相互的)
3、补码
反码加1称为补码。
4、与
有0得0,全1出1
5、或
有1得1,全0出0
6、异或
相同为0,不同为1
二、举例
1、带符号左移(正数)
10<<2
描述:10带符号左移两位
方法1:10乘以2的2次方
方法2:10的二进制是00001010,左移两位(低位补0)是00101000,转换成十进制是40。
答案:40
2、带符号左移(负数)
-10<<2
描述:-10带符号左移两位
10的二进制是00001010,反码是11110101,补码(反码+1)是11110110,左移两位(低位补0)是11011000,减一是11010111,反码是00101000,转换为十进制是-40。
答案:-40
3、带符号右移(正数)
10>>2
描述:10带符号右移两位
方法1:10除以2的2次方
方法2:10的二进制是00001010,右移两位(高位补0)是00000010,转换成十进制是2。
答案:2
4、带符号右移(负数)
-10>>2
描述:-10带符号右移两位
10的二进制是00001010,反码是11110101,补码(反码+1)是11110110,右移两位(高位补1)是11111101,减一是11111100,反码是00000011,转换为十进制是-3。
答案:-3
5、不带符号右移(正数)
10>>>2
描述:10无符号右移,解答方法同10>>2。
6、不带符号右移(负数)
-10>>>2(32或64位)
描述:-10无符号右移两位
-10的32位二进制是11111111 11111111 11111111 11110110,右移两位(高位补0)是
00111111 11111111 11111111 11111101,转换为十进制是1073741821。
7、按位与
3&5
描述:3按位与5
解答方法:3的二进制是0011,5的二进制是0101,有0得0,全1出1
0011
0101
0001(二进制结果)
答案:1
8、按位或
3|5
描述:3按位或5
解答方法:3的二进制是0011,5的二进制是0101,有1得1,全0出0
0011
0101
0111(二进制结果)
答案:7
9、按位异或
3^5
描述:3按位异或5
解答方法:3的二进制是0011,5的二进制是0101,相同为0,不同为1
0011
0101
0110(二进制结果)
答案:6