32位机器int变量的最大值和最小值

对于32位(即4个字节)有符号的int变量来说:

  1. 最高位用来表示正负性,1表示为负,0表示为正。
  2. 最大值:符号位置为0后,还剩下31位,这31位可以组成的二进制数的个数为2 ^ 31 = 2,147,483,648。由于000 0000 0000 0000 0000 0000 0000 0000这种情况需要用来表示数值0,所以还剩下2,147,483,647个数可以表示,所以最大值为2,147,483,647
  3. 最小值:同样的,符号位置为1后,还剩下31位,可以表示2,147,483,648个数,因为在C++中负数是以补码形式存储的,-0和0的补码是一样的。为了不造成资源的浪费,将1000 0000 0000 0000 0000 0000 0000 0000这个二进制数用来表示-2,147,483,648,即为最小值。
    总结:32位机器上有符号int取值范围为[-2147483648,2147483647]。
    对于32位(即4个字节)无符号的int变量来说:
    最大值为2 ^ 32 - 1, 取值范围为[0, 2 ^ 32 - 1]。
    更详细的解释可以看我的另一篇博客:C++中负数和补码的关系文末的内容。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值