浮点数(float及double)的本质及其在计算机中的存储

float和double在存储方式上都是符合IEEE的规范的
下面先说float(double与之类似)
float型数据共有且只有4个字节,即32位
从左到右共分为三个部分:
1.第1位为符号位(1位)
2.从第2位到第9位为指数位(8位)
3.从第10位到第32位为尾数位(23位)

float的表示方法类似于科学计数法
尾数为1+小数,由于1为固定,所以实际存储中,尾数部分只存储数据的小数,1不再存储。
由于尾数只有23位,所以能表示精度最小单位是2的(-23)次方,为0.00000011920928955078125,所以能其精度只有6位(即它能完全表示到的小数位数)
下面介绍如何把float数据转换成实际计算机中的二进制存储:
1.符号位,正则0,负则1
2.把十进制数转化为二进制(这个都会吧)
左右移动二进制数据,直到其整数部分只有1.
.移动的位数即为其指数位(左移为负,右移为正)
指数部分需要+127转化为补码存储
3.小数部分即为尾数部分,
把1,2,3加起来即得到该float数据的计算机存储
下面举具体例子来说明:
float数据:3.5
3.5转化为二进制,整数部分3转化为二进制:11,小数部分转化成二进制:1,即3.5对应二进制:11.1
符号位:0
右移1位变成1.11,
指数是1,1+127为128,二进制就是,10 00 00 00
尾数是:11("."后面的即是)
合在一起就是
0 10000000 110000000000000000000000
上面即为3.5的计算机实际存储
double类型类似

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值