Why Int32.MaxValue = 2147483648?

本文关键字:2147483648 MaxValue Int32 Why | 更新日期: 2023-09-27 18:13:22

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

谢谢

Why Int32.MaxValue = 2147483648?

Int32存储为32位,而不是31位,并且其范围的一半为负数。在剩余的范围之外,您将失去一个值为零,使2147483647成为最大的正数。

Int32的取值范围是-2147483648到2147483647。

它还包括零0在正范围。因此,范围是02147483647,由于零被认为是正侧,因此从'-1'到-2147483648的负侧。

所以正负两边的值是相等的

Int32的实际数据存储在31位,因为普通Int32也应该保存负数,1位用作符号位,剩余的31位用作数据位。但是,如果您使用unsigned Int32,那么您将在其中拥有完整的32位数据。

这意味着int可以有从02147483647的最大2147483648正值,int.Min是-2,147,483,648,因为它不包括0