浮点数的储存方式

文章介绍了IEEE754标准下,二进制浮点数如何表示,包括符号位S、指数E和有效数字M的存储规则。在32位和64位浮点数中,不同位数分配给各部分,并详细解释了指数的处理方式,如全0表示极小值,不全0时不全1表示实际指数,全1且M为0表示无穷大。
摘要由CSDN通过智能技术生成

根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数都可以表示以下的形式:

(-1)^S *M *2^E

(-1)^S表示符号位,当S=0,浮点数为正数:当S=1,浮点数为负数

M表示有效数字,大于等于1,小于等于2

2^E表示指数位

对于32的浮点数

1个比特位用于储存表示符号位的1或者0

8个比特位用于储存指数

23个比特位用于储存有效数字

例如-5.5可以表示为二进制-101.1,进一步表示为-1.011*2^2

注意0.5表示为二进制是0.1(即1*2^-1)

那么它的S存进去1,E存进去10000001(二进制),M存进去01100000000000000000000(011后面一共20个0)

注意:(1)由于有效数字的小数点的左边一位必定位1,因此可以直接省略

(2)根据规定,指数存进数据中要加上中间值(这个中间值是相对与数据中指数的储存位数)。如E+127的值存进8个比特位中(目的是确保存进去的数为正数,也就是说存进去的数为一个无符号数),即129的二进制序列存了进去。

那么他储存在内存中就是11000000101100000000000000000000

对于64位的浮点数

1个比特位用于储存符号位的数字

11个比特位用于储存指数

52个比特位用于储存有效数字

表示方法与32位类似

E从内存中取出来还可以分为3中情况:

当E为全0的时候,这个时候意味着这是一个非常小的浮点数,M不再加上正数部分的1而是表示为0.xxxxxxxxxxx……这样做是为了表示一个非常接近于0的数字

当E不全为0并且不全为1的时候,从中去出来的数据减去127(或1023)来表示指数

当E全为1的时候,并且有效数字M全为0,则该数字表示正(或负)无穷大

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值