32位存储环境下整数范围为什么是[-2^31,2^31-1]?

一、概念:存储单位

1.“位”是数据存储的最小单位。在计算机中的二进制数系统中,位,简记为bit,也称为比特,每个0或1就是一个位。

2.“字节”是计算机信息技术用于计量存储容量的一种计量单位,通常情况下,一字节有八位,简称为B。

3.“KB”(千字节)是一种资讯计量单位,现今通常在标示内存等具有一般容量的储存媒介之储存容量时使用。

二、二进制转十进制的方法

例:二进制1101转十进制___?

解: 1101 =1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 

方法:从右到左用二进制的每个数去乘以2的相应次方 ,首次次方从0次开始。

三、等比数列求和公式

四、32位存储环境下整数范围为什么是[-2^31,2^31-1]?

1.int类型是4个字节,32位,最大值用二进制表示就是, 0111...(总共31个1)。

为什么第一位是0? 二进制里,最高位(第一位)表示符号:0表示正,1表示负。

2.计算:

0111...(总共31个1) = 1*2^0+1*2^1+...+1*2^30+0*2^31=1+2^1+2^2+...+2^30=2^31-1(等比数列求和公式计算)

3.为什么是[-2^31,2^31-1]而不是[-2^31,2^31]?

例:3位机(8位机为2^8)的话总长度是2^3,对有符号数来说各占一半,也就是2^2=4,也就是三位机的int范围为(-4~+4),但是0被划到了正数的范畴,所以三位机中int的范围应该是(-4~+3).

同理,是[-2^31,2^31-1]而不是[-2^31,2^31]。

告辞!

如有错误,欢迎指正!

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值