繁体   English   中英

为什么符号位不影响Integer.MAX_VALUE但影响MIN值?

[英]Why does the sign bit not affect the Integer.MAX_VALUE but affects the MIN Value?

System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);

打印:

2147483647
-2147483648

为什么最大值为2 ^ 31 -1(符号位为0且未加到数字的值),而最小值为-2 ^ 31(符号位为1且已加到值)然后??)。

这样考虑:与符号位设置为0的二进制模式数一样,您拥有的符号位设置为1的二进制模式数也是如此。 但是,您还需要表示零,既不是正数也不是负数。 由于零表示为全零的模式,因此它从给定位数的正数集合中扣除,因此可负数的计数将增加一个。

符号位不会加到该值上。 您可以用32位表示2 ^ 32个不同的值。 Hovewer,其中一个值是0; 因此有2 ^ 31个负值,2 ^ 31-1个正值和0,它们总共加起来有2 ^ 32个不同的值。 由于符号位0也为0,因此很自然地,正值的数量要比负值的数量少一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM