浮点数的表示 —— 基本格式、规格化、表示范围

一、浮点数的表示格式

浮点数表示法是指以适当的形式将比例因子表示在数据中,让小数点的位置根据需要而浮动。这样,在位数有限的情况下,既扩大了数的表示范围,又保持了数的有效精度。

浮点数的表示 —— 基本格式、规格化、表示范围_第1张图片
在这里插入图片描述
在这里插入图片描述
阶码:阶码是整数,阶符和 m 位阶码的数值部分共同反映 浮点数的表示范围及小数点的实际位置 ,常用移码或补码表示。IEEE754标准中采用移码的表示形式。

尾数:数符表示浮点数的符号,尾数的数值部分的位数 n 反映浮点数的 精度 ,常用原码或补码表示。IEEE754标准中采用原码的表示形式

在这里插入图片描述
浮点数的表示 —— 基本格式、规格化、表示范围_第2张图片
在这里插入图片描述

浮点数的表示 —— 基本格式、规格化、表示范围_第3张图片
由于 b 的尾数含6位,而存储空间仅剩下5位,故舍弃了最后一位,导致 b 的精度下降
在这里插入图片描述

观察尾数,我们可以发现,尾数的数值部分的第一位为0,而符号位也为0,故尾数存储的第一位不是有效信息,因此,我们可以将尾数进行算术左移,阶码减1

在这里插入图片描述
此时,b 的精度没有下降,充分利用了有限的存储空间。这就是接下来要介绍的规格化中的左规。


二、规格化浮点数

规格化:规定尾数的最高数位必须是一个有效值。非规格化浮点数要进行规格化操作才能变成规格化浮点数。

  • 左规:当浮点数运算的结果为非规格化时要进行规格化处理,将尾数算术左移一位,阶码减1(基数为2时)。
  • 右规:当浮点数运算的结果尾数出现溢出(双符号位为01或10)时,将尾数算术右移一位,阶码加1(基数为2时)。

在这里插入图片描述
浮点数的表示 —— 基本格式、规格化、表示范围_第4张图片

当浮点数尾数的基数为2时,原码规格化数的尾数最高位一定是1,补码规格化数的尾数最高位一定与尾数符号位相反。

基数不同,浮点数的规格化形式也不同。当基数为4时,原码规格化形式的尾数最高两位不全为0;当基数为8时,原码规格化形式的尾数最高3位不全为0


三、浮点数的表示范围

浮点数的表示 —— 基本格式、规格化、表示范围_第5张图片

  • 由于阶码可以用移码或补码表示,尾数可以用原码或补码表示,所以不同形式的浮点数的表示范围是不同的。(但必须遵守规则,原码规格化数的尾数最高位一定是1,补码规格化数的尾数最高位一定与尾数符号位相反。)
  • 运算结果大于最大正数时称为正上溢,小于绝对值最大负数称为负上溢。数据一旦发生上溢,计算机必须中断运算操作,进行溢出处理。
  • 运算结果在0至最小正数之间时称为正下溢,在0至绝对值最小负数之间时称为负下溢。数据发生下溢时,浮点数值趋于0,计算机仅将其当作机器0处理。

你可能感兴趣的:(计算机组成原理)