You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询32位有符号整数最大值计算方式:为何最大值为2,147,483,647?

关于32位有符号整数最大值的几个疑问解答

嘿,这几个问题戳中了很多人对整数存储的认知盲区,我来给你掰扯明白:

为什么$2,147,483,647$是32位有符号整数的最大值?

现代计算机里,有符号整数普遍用补码来存储,32位的话,会把最高位(第32位)用作符号位:

  • 符号位为0时,表示这是一个正数
  • 符号位为1时,表示这是一个负数

剩下的31位用来存储数值部分,当这31位全为1的时候,这个正数的数值就达到了最大——因为每一位都取了能表示的最大状态。

具体计算方式

31位全1的二进制数,转换成十进制的话,可以用等比数列求和来算:
从(20)(第1位)加到(2{30})(第31位),求和公式是(2^n - 1)(n是位数),这里n=31,所以结果就是:
2^31 - 1 = 2147483647

你也可以这么理解:31位二进制能表示的最大无符号数是(2^{31}-1),而因为符号位占了一位,正数的最大值就等于这个数。

为什么$8^{32}$和这个最大值不符?

这完全是把二进制位数和八进制位数搞混啦!

  • 32位指的是二进制的位数,32位二进制能表示的总取值数是(2{32})个(包含正数、负数和0),而不是(8{32})
  • (8^{32})对应的是32位八进制数的总取值数,八进制每一位有8种可能,和32位二进制整数的存储规则没有半毛钱关系,数值自然差了十万八千里。

内容的提问来源于stack exchange,提问作者Jordan Baron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:22:47