不懂你说的什么意思。正数的反码相同?怎么可能呢?
反码指的是按位取反,例如1的二进制码(单字节)是 00000001,反码则是11111110,这怎么相同呢?负数的二进制码用的是补码,补码就是先取反码再加1,1的二进制码是00000001,反码是11111110,而补码是11111111,所以-1的二进制码是11111111
反码指的是按位取反,例如1的二进制码(单字节)是 00000001,反码则是11111110,这怎么相同呢?负数的二进制码用的是补码,补码就是先取反码再加1,1的二进制码是00000001,反码是11111110,而补码是11111111,所以-1的二进制码是11111111
二者相同,见下面的代码及输出:System.out.println(~6 == -7);
System.out.println(Integer.toBinaryString(6));
System.out.println(Integer.toBinaryString(~6));
System.out.println(Integer.toBinaryString(-7));输出为
true
110
11111111111111111111111111111001
11111111111111111111111111111001