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

原文地址:https://www.cnblogs.com/xiximayou/p/12038810.html