一个 int
占 4 字节(Byte),也就是 32 位(Bit),其中第一位用来存储正负号,1 表示负数,0 表示正数
也就是说,共有 31 位用来存储数据,所以,能够存储数字的总个数为 2^31=2147483648
(10^9)
而在某种程度上,可以理解为,在存储上,0 被归为了正数
所以正数最大值为 2^31-1
,而负数最小值就是2^31
更形象的解释看下面:
Int32.MaxValue = 2^31 - 1 = 01111111111111111111111111111111
1 = 00000000000000000000000000000001
0 = 00000000000000000000000000000000
-1 = 11111111111111111111111111111111
Int32.MinValue = -2^31 = 10000000000000000000000000000000
可以明显的看出,为什么 int
类型最大值为 2^31-1
,而最小值是2^31