计算机组成原理之浮点表示

为什么要引入浮点表示

  1. 编程困难,程序员要调节小数点的位置
  2. 数的表示范围小,要表示两个大小相差很大的数据,需要很长的机器字长

浮点表示法

定义

把一个数的有效数字和数的范围在计算机的存储单元中分别予以表示,这种把数的范围和精度分别表示的方法叫做浮点表示法

浮点数的一般形式

N=M*rE
其中,M称为浮点数的尾数,E称为浮点数的指数,也叫阶码,r称为浮点数的基数。
计算机中r取2,4,8,16等;
M取小数,可正可负;
E取整数,可正可负。
注意:基数r越大,可表示的浮点数的范围越大,浮点数的精度降低。
eg: 二进制数 10100.10011 可以写成 1.010010011*24

IEEE754标准

IEEE754浮点数标准便于软件移植

存储形式

32位浮点数(单精度)在计算机中的存储形式:
在这里插入图片描述
64位浮点数(双精度)在计算机中的存储形式:
在这里插入图片描述
不论是32位浮点数还是64位浮点数,由于基数2是固定常数,对每一个浮点数都一样,所以不必用显示的方式来表示它。

32位浮点数中:

  • S是浮点数的符号位,占一位,安排在最高位,s=0表示正数,s=1表示负数
  • M是尾数,放在低位部分,占用23位,小数点位置放在尾数域最左(最高)有效位的右边
    注意:这里的最高位因为规格化总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。
  • E是阶码,占用8位,阶符采用隐含方式,即采用移码方法来表示正负指数

64位同理

真值和规格化表示

  1. 规格化表示:当尾数的值不为0时,尾数域的最高有效位应该为1,这称为浮点数的规格化表示
  2. 真值表示
    在IEEE754标准中:
    一个规格化的32位浮点数x的真值表示为:
    x=(-1)S * (1.M) * 2E-127
    一个规格化的64位浮点数x的真值表示为:
    x=(-1)S * (1.M) * 2E-1023
    其中,S为机器存储中的符号位,E为机器存储中的阶码,1.M为机器存储中的尾数,,但是由于规格化的浮点数的尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。就拿32位浮点数的尾数来说,用23位字段可以存储24位有效数字。
  3. IEEE754表示的特殊值
阶码 E尾数 M表示的值
全为0全为0值为0,结合符号位,有正0和负0之分
全为1全为0值为无穷大,结合符号位,有正无穷和负无穷之分

注意:在实际表示中,除去E全0和全1的特殊情况

例题

将十进制数20.59375转换成754标准的32位浮点数的二进制格式。

解:
20.59375=10100.10011
10100.10011=1.010010011*24
得到:s=0,E=4+127=131,M=010010011
最后得到32位浮点数的二进制格式为:
0 10000011 0100 1001 1000 0000 0000 000

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

疯狂的小强呀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值