我想知道为什么.NET中Int32的最大可能值是2147483647而不是2147483648.因为2³= 2147483648。
谢谢
答案 0 :(得分:7)
Int32
以32位而不是31位存储,其范围的一半由负数表示。在剩余范围之外,您将一个值丢失为零,将2147483647作为最高正数。
Int32的范围是-2147483648到2147483647。
答案 1 :(得分:3)
它还包括正范围内的零0
。因此,范围为0
到2147483647
,因为在正面考虑了零,因此从“-1”到-2147483648
都是负面。
所以整体正面和负面都需要相同数量的值。
答案 2 :(得分:3)
Int32的实际数据以31位存储,因为常规Int32也应该保持负数,1位用作符号位,剩余31位用作数据。但是,如果您使用无符号Int32,那么您将拥有完整的32位数据。
答案 3 :(得分:1)
这意味着int
从2147483648
到0
可以有最大2147483647
个正值,int.Min
是-2,147,483,648,因为它不包含{ {1}}