簡體   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