为什么选择Int32.MaxValue = 2147483648?

时间:2014-07-18 04:21:33

标签: c# .net

我想知道为什么.NET中Int32的最大可能值是2147483647而不是2147483648.因为2³= 2147483648。

谢谢

4 个答案:

答案 0 :(得分:7)

Int32以32位而不是31位存储,其范围的一半由负数表示。在剩余范围之外,您将一个值丢失为零,将2147483647作为最高正数。

Int32的范围是-2147483648到2147483647。

答案 1 :(得分:3)

它还包括正范围内的零0。因此,范围为02147483647,因为在正面考虑了零,因此从“-1”到-2147483648都是负面。

所以整体正面和负面都需要相同数量的值。

答案 2 :(得分:3)

Int32的实际数据以31位存储,因为常规Int32也应该保持负数,1位用作符号位,剩余31位用作数据。但是,如果您使用无符号Int32,那么您将拥有完整的32位数据。

答案 3 :(得分:1)

这意味着int21474836480可以有最大2147483647个正值,int.Min是-2,147,483,648,因为它不包含{ {1}}