二进制(Binary)数用0和1两个数字及其组合来表示任何数。进位规则是“逢2进1”,数字1在不同的位上代表不同的值,按从右到左的次序,这个值以二倍递增。

原码、反码、补码:
1、二进制的最高位是符号位:0表示正数,1表示负数;
2、正数的原码、反码和补码都一样;
3、负数的反码=它的原码符号位不变,其他位取反;
4、负数的补码=它的反码+1;
5、0的反码,补码都是0;
6、java没有无符号数;
7、在计算机运算的时候,都是以补码的方式来运算的。

java中有4个位运算,分别是“按位与&、按位或|、按位异或^、按位取反~“,它们的运算规则是:
1、按位与&:两位全为1,结果为1;
2、按位或|:两位有一个为1,结果为1;
3、按位异或^:两位一个为0,一个为1,结果为1;
4、按位取反~:0->1,1->0;

java中有3个移位运算符:
1、算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位;
2、算术左移<<:符号位不变,低位补0;
3、逻辑右移>>>:低位溢出,高位补0;