负数会消耗更多内存吗?

Rod*_*uin 0 java memory bit

所以我有这个测试程序,它检查一个整数的二进制值是正的而另一个是负的.

int i = 100;
int i2 = -100;

System.out.println(Integer.toBinaryString(i));
System.out.println(Integer.toBinaryString(i2));
Run Code Online (Sandbox Code Playgroud)

结果:

1100100
11111111111111111111111110011100
Run Code Online (Sandbox Code Playgroud)

正如你可以看到负数比正数有更多的位数,这是否意味着负数比正数消耗更多的内存?

Yuu*_*shi 9

不,两者都是32位数量 - 整数的宽度在给定平台上是固定的.它"更短",因为它截断了所有领先的0.

您可能希望对整数表示进行一些读取,特别是二进制补码表示.


Jig*_*shi 8

不,它是如何在内部表示的,正数表示具有相同的位数来表示int值

它只是避免领先的零