浮点数的表示

对于r进制数:
knkn-1…k2k1k0k-1k-2…k-m
=knrn+kn-1rn-1+…+k2r2+k1r1+k0r0+k-1r-1+k-2*r-2+…+k-m*r-m
浮点数通常用如下格式来表示
在这里插入图片描述
浮点数的真值:N= 阶码的底(通常为2)的阶码次方乘以尾数

N = r E ∗ M N = r^E * M N=rEM

例题

1.阶码、尾数都是用补码表示的,求出a,b的真值
a=0,01;1.1001
b=0,01;0.01001

  • 先来看a
  • 阶码符号为正,阶码值为1,那么rE=21
  • 尾数的尾符为1,则表示为负数,1001的补码为0111,因此真值是-0.0111
  • N = rE * M=21 *(-0.0111)
  • 乘以(-0111)相当于111香右移动了4位,因此等于 − 7 2 4 {-7\over 2^4} 247,就等于 − 7 16 {-7\over 16} 167,所以N= − 7 8 {-7\over 8} 87
  • 此浮点数在8个bit的计算机中表示为00111001
  • 再来看b
  • 按照a的思路,我们可以得出N=21(0.01001)=21 9 2 5 {9\over 2^5} 259= 9 16 {9\over 16} 169
    在计算机中表示为00100100,很明显最后一位被舍弃了,很显然精度损失了,那么有没有方法解决呢,其实尾数部分可以按照一定的规格来演算,即第一个数字用有效的数字1来表示,而不是用0,那么针对b的尾数部分就可以用0.1001来表示,那么阶数就应该为 2 1 2^1 21变为 2 0 2^0 20,即变为000,所以最终表示为00001001
  • 规格化:规定尾数的最高数位的第一个数字为有效值

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

micro_cloud_fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值