为什么四个字节的float比八个字节的long表示范围大

 

①、float比long类型的存储范围大

long:8个字节 64bit

float:4个字节 32bit

float和long都是用二进制来进行存储的

但是小数会先转成二进制,然后进行处理存储。

float的存储是将4个字节32位划分为3个部分来分别存储正负号,小数部分和指数部分的:

符号位(1位:S):用来存储正负符号,0表示正数,1表示负数。

底数部分(8位:E):使用二进制数来确定小数的精度。
指数部分(23位:M):占用8bit的二进制数,来确定数的范围。

但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。所以,float类型的指数可从-126~+127(-127和128作为特殊规定)。

底数部分实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit 科学计数法。

IEEE754标准:

vlue = (-1)^S * M * 2^E-127

指数位最大值:8个1   11111111  255

根据IEEE754标准计算得:  vlue = (-1)^S * M * 2^255-127   为   vlue = (-1)^S * M * 2^128

那么float表示的范围为  -2^127 ~ 2^127

换算成10进制为:-3.410^38 ~ +3.410^38;

long在内存中占用8个字节64位,符号位占1位,数值表示范围为-2^63~2^63-1

显然,float的存储范围比long的存储范围要大得多;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值