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

为何32位有符号整数最大值为2^31-1,最小值无需减1?

32位有符号整数最大值与最小值的取值逻辑
  • 先明确前提:32位有符号整数用补码存储,最高位是符号位(0表示正数,1表示负数),剩下31位是数值位。

  • 为什么最大值是2^31 - 1?
    正数的补码和原码完全一致,当符号位为0,剩下31位全为1时,这个数的数值是2^0 + 2^1 + ... + 2^30,用等比数列求和公式算出来就是2^31 - 1。这是正数能达到的最大值——再往上加1,31位数值位就会溢出,把符号位从0变成1,直接变成负数了,所以必须减1。

  • 为什么最小值是-2^31?
    补码的规则里,0的表示只有一种(全0),没有所谓的“-0”。原本用来表示“-0”的那个补码(符号位1,数值位全0),就被用来表示最小的负数-2^31。而且按照补码的计算逻辑,这个补码对应的十进制就是-2^31,不需要减1——因为它刚好占据了原本“-0”的位置,填补了正数比负数少一个数的空缺。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:01:55