浮点数的原理

浮点数的原理


浮点数

  • 为啥叫浮点数,而不是叫小数,或者可以说浮点数和小数的区别?

    • 因为资源的限制,数学中的有些小数无法直接在计算机中准确的表示,所以出现了浮点数,这是对小数的近似值,浮点数永远小于小数;
    • 因为浮点数,仅仅是小数的近似值,所以我们在计算的时候经常出现问题,最完美的解决方案就是选择更加精确的数据类型;
    • 可以举一个例子,二进制的小数基数可以用 0.5 0.25 0.125 0.0625 …来表示,要想用这些数据来表示这所有的小数 那是不可能的,例如 0.3 0.1 0.2 就没法准确的表示 ,所以仅仅是近似值; 这里你可以比喻 10 进制存在无限不循环小数 也是无法用 十进制的准确的数来表示;
  • IEEE754 定义的规则

    • 要求二进制小数必须是1开头,那么F尾就会多一位的范围,float就是24位,double就是53位;更加精确了;
  • 浮点型的组成(下面的图片是10进制案例)

    • 在这里插入图片描述

    • 符号:(-1)^S

    • 尾部:IEEE754要求二进制的第一位必须是1,也就是 1.F

    • 基数:这里基数是2 也就是说是2进制的 在IEEE754中基数是省略的 因为都是2;

    • 指数:因为指数肯定有负数也有正数,所以会减去1023 中间数来做判断符号正负,大于1023就是正数,小于1023就是负数;

  • 浮点型 主要分为 也就是单精度float和双精度 double 分别是4个字节和8个字节

    • 在这里插入图片描述

所以浮点型的精度由 尾部来决定

double 52位 尾部长度 2^53 大于这个数都会失真;

float 尾部是24位 2^24 大于这个数也会失真;

oat 尾部是24位 2^24 大于这个数也会失真;

那么 科学计数法表示为:(-1)^S * 1.F* 2^(E - 1023)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值