为什么选择Int32.MaxValue = 2147483648?

Vid*_*att 1 .net c#

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

谢谢

The*_*uin 8

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

Int32的范围是-2147483648到2147483647.


Nik*_*wal 7

它还包括0正范围内的零。因此范围是0to2147483647并且因为在正侧考虑了零,因此从'-1'到负侧-2147483648

因此,总体正面和负面的值采用相同数量的值。


小智 5

Int32的实际数据存储在31位中,因为常规的Int32也应保持负数,将1位用作符号位,将剩余的31位用作数据。但是,如果使用无符号Int32,则其中将包含完整的32位数据。