计算机组成原理——浮点数表示

浮点数表示

  1. 浮点数的表示形式

为了扩大浮点数表示范围和提高表示精度,二进制浮点数表示采用了类似十进制科学记数法的表示方式。即二进制数 N N N表示为如下形式:
N = 2 E × M = 2 ± e × ( ± 0. m ) N = 2^E \times M = 2^{\pm e} \times (\pm 0.m) N=2E×M=2±e×(±0.m)
按照这一形式:二进制浮点数可以由E(阶码)M(尾数)来表示。E是定点整数,M是定点小数。所以浮点数是用定点数来表示的。

浮点数数据格式如下表:

阶符阶值数符尾数
e 0 e_0 e0 e 1 e 2 e 3 … e k e_1 e_2 e_3 \dots e_k e1e2e3ek m 0 m_0 m0 m 1 m 2 m 3 … m n m_1 m_2 m_3 \dots m_n m1m2m3mn
  1. 浮点数规格化

同一浮点数采用上表的格式去表示,可能存在多种表示形式。
如: 0.01111 × 2 101 0.01111\times 2^{101} 0.01111×2101还可以表示成 0.11110 × 2 100 0.11110 \times 2^{100} 0.11110×2100。这种表示的不唯一性会带来很多麻烦,比如影响软件的可移植性。

归根到底还是浮点数表示的标准不统一。所以就有了规格化处理。

规格化处理:就是使得尾数最高有效位为1.

规格化处操作:根据具体形式通过将非规格化尾数进行算术左移或者右移,并同步减少或增加阶码值的操作进行规格化。对应的规格化方法分别称为左移规格化和右移规格化。

两种规格化形式:

  • 尾数绝对值大于或等于0.5
  • 尾数绝对值大于1,小于2

两种规格化形式本质上无太大区别,二者尾数最高有效位都是1.

这里主要介绍第二种形式:
N = 2 E × M = 2 ± e × ( ± 1. m ) N = 2^E \times M = 2^{\pm e} \times (\pm 1.m) N=2E×M=2±e×(±1.m)
由于同一了标准,尾数最高位的1在不需要位数来单独表示,可以隐藏。当需要运算时自动恢复。这样可以节省一位。这省略的一位被称为隐藏位.

  1. IEEE二进制浮点数标准

在这里插入图片描述

  • IEEE754单精度浮点数规范

在这里插入图片描述

  • IEEE754浮点数表示范围

在这里插入图片描述

  • 浮点数特性:

浮点数在数轴上的表示是不均匀的。

在这里插入图片描述

浮点数运算不满足结合律。小数+大数=大数。

溢出:浮点数绝对值超过正数最大值则为上溢,低于正数最小值则为下溢。

发生下溢的浮点数由于绝对值过小,可以作为机器0处理。

精度溢出:浮点数不在被表示的刻度上是,会进行舍入。

  1. 单精度浮点数和真值之间的转换流程

在这里插入图片描述

参考资料

[1] 计算机组成原理(微课版)(谭志虎 主编)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值