408计算机组成原理学习:浮点数

408计算机组成原理学习:浮点数

浮点数的表示

类似于科学计数法
在这里插入图片描述

阶码:常用补码或移码表示的定点整数
尾数:常用原码或补码表示的定点小数
类比十进制:+302657264526 = +3.026 * 10^+11
可记为:+11 +3.026

阶符表示阶码的正负,即小数点前移还是后移

浮点数的真值:
N = r^E × M
阶码 E 反映浮点数的 表示范围 及小数点的实际位置;
尾数M的数值部分的位数n反映浮点数的精度 。
阶码的长度一般是固定的
Eg:
a = 0,01; 1.1001
b = 0,10; 0.01001
a的真值 = 2^1 ×(−0.0111) = −0.111
b的真值 = 2^2 ×(+0.01001) = +1.001

浮点数尾数的规格化

+11 +3.026
也可记为: +14 +0.003(尾数的最高位是无效值,会丧失精度)

规格化浮点数:规定尾数的最高数值位必须是一个有效值 。
左规:当浮点数运算的结果为非规格化时要进行规格化处理,将尾数算数左移一位,阶码减1。
通过算数左移、阶码减1 来规格化

右规:当浮点数运算的结果尾数出现溢出(双符号位为01或10)时,将尾数算数右移一位,阶码加1。
通过算数右移、阶码加1 来规格化

规格化浮点数的特点

规格化的原码尾数,最高数值位一定是1
规格化的补码尾数,符号位与最高数值位一定相反

  1. 用原码表示的尾数进行规格化:
    正数为0.1××…×的形式,其最大值表示为0.11…1;最小值表示为0.10…0。
    尾数的表示范围为1/2≤M≤(1−2^−n )。
    负数为1.1××…×的形式,其最大值表示为1.10…0;最小值表示为1.11…1。
    尾数的表示范围为−(1−2^−n )≤M≤−1/2。
  2. 用补码表示的尾数进行规格化:
    正数为0.1××…×的形式,其最大值表示为0.11…1;最小值表示为0.10…0。
    尾数的表示范围为1/2≤M≤(1−2^−n )。
    负数为1.0××…×的形式,其最大值表示为1.01…1;最小值表示为1.00…0。
    尾数的表示范围为−1≤M≤−(1/2+2^−n )。

注:补码算数左移,低位补0;补码算数右移,高位补1。

在这里插入图片描述

IEEE 754

移码的定义:移码 = 真值+偏置值
8位移码的偏置值=128D=1000 0000B,即2^(n-1)
偏置值一般取 2^(n-1) ,此时移码 = 补码符号位取反

Eg:
真值 -127 = -1111111B
移码 = -1111111 + 10000000 = 0000 0001

在IEEE 754中 令偏置值=127D=0111 1111B,即2^(n-1) -1
Eg:
真值 -128 = -1000 0000B
移码 = -1000 0000 + 01111111 = 1111 1111

在这里插入图片描述

阶码全1、全0用作特殊用途
所以短浮点数的真值正常范围:-126~127
在这里插入图片描述

阶码真值=移码-偏移量
规格化的短浮点数的真值为:(−1)^s ×1.M×2^(E−127),E - 127为阶码的真值
规格化长浮点数的真值为:(−1)^s ×1.M×2^(E−1023)

在这里插入图片描述

当阶码E全为0,尾数M不全为0时,表示非规格化小数 ±(0.xx…x)₂ ×2^-126
当阶码E全为0,尾数M全为0时,表示真值 ±0
当阶码E全为1,尾数M全为0时,表示无穷大 ±∞
当阶码E全为1,尾数M不全为0时,表示非数值 “NaN

由浮点数确定真值(阶码不是全0、也不是全1):

  1. 根据“某浮点数”确定数符、阶码、尾数的分布
  2. 确定尾数 1.M (注意补充最高的隐含位1)
  3. 确定阶码的真值 = 移码 - 偏置值 (可将移码看作无符号数,用无符号数的值减去偏置值)
  4. (−1)^s ×1.M×2^(E−偏置值)

浮点数的加减运算

浮点数加减运算步骤:
① 对阶
使两个数的阶码相等,小阶向大阶看齐,尾数每右移一位,阶码加1
② 尾数加减
③ 规格化
④ 舍入
"0"舍"1"入法:
类似于十进制数运算中的“四舍五入”法,即在尾数右移时,被移去的最高数值位为0,则舍去;被移去的最高数值位为1,则在尾数的末位加1。这样做可能会使尾数又溢出,此时需再做一次右规。
恒置“1”法:
尾数右移时,不论丢掉的最高数值位是“1”还是“0”,都使右移后的尾数末位恒置“1”。这种方法同样有使尾数变大和变小的两种可能。

⑤ 判溢出
若规定阶码不能超过两位,则运算后阶码超出范围,则溢出
Eg:
已知十进制数X=−5/256、Y=+59/1024,按机器补码浮点运算规则计算X−Y,结果用二进制表示,浮点数格式如下:阶符取2位,阶码取3位,数符取2位,尾数取9位

用补码表示阶码和尾数
在这里插入图片描述

Eg:
在这里插入图片描述

强制类型转换

在这里插入图片描述

范围、精度从小到大,转换过程没有损失

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小二康

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

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

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

打赏作者

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

抵扣说明:

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

余额充值