java之位运算符
作者:互联网
整型转二进制:Integer.toBInaryString(6)
<<:左移,3<<2 = 3*2*2 = 12
>>:右移,3>>1 = 3/2 = 1.(有符号的右移,看首位是0还是1,是0则补0,是1则补1;无符号右移就只补0)
>>>:无符号右移,3>>>1 = 3/1 = 1.,注意没有无符号左移
&:与运算,6 & 3 = 2(当二进制中两个数的对应位置都为1,结果才为1,例如1010 & 1101 = 1000)
|:或运算,6 | 3 = 7(当二进制中两个数的对应位置都为0,结果才为0,例如10100 & 11010 = 11110)
^:异或运算,6 ^ 3 = 5(当二进制中两个数的对应位置都是0或者都是1时,结果才为0,例如10100 & 11010 = 01110)
~:反码,~6 = -7(正数的原码、反码、补码都是它自己,负数的反码是原码的除符号位取反,补码是反码+1)
标签:右移,反码,运算,符号,二进制,之位,运算符,java,原码 来源: https://www.cnblogs.com/xiximayou/p/12038810.html