[英]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.