JAVA中十进制数是按照补码的形式存放的。正数的补码为其本身的二进制数(反码也是)。而负数的补码则是正数的补码在各位求反然后+1得到的。例如:
假如有一个int型变量var1 = 10。10的补码为:0000-0000-0000-0000-0000-0000-0000-1010。这也是var1在计算机中存储的数据。
假如另外一个int型变量var2 = -10。 那么,-10的补码为:0000-0000-0000-0000-0000-0000-0000-1100 ------> 1111-1111-1111-1111-1111-1111-1111-0101(各位取反)----> 1111-1111-1111-1111-1111-1111-1111-0110(最后一位+1)。