计算机组成原理浮点数加减

浮点数加减流程图

Created with Raphaël 2.2.0 对阶 尾数求和 尾数规格化 双符号位不一致 右移 舍入 满足规格化 溢出判断并输出 是否需要左移 左移 yes no yes no yes no

对阶

在这里插入图片描述两个浮点数阶码换算成一致的,并用二位符号位表示,即正数为00,负数为11.
Γ ( x ) = 0.1101 ∗ 2 01 . Γ ( y ) = − 0.1010 ∗ 2 11 . \Gamma(x)= 0.1101* 2^{01}. \Gamma(y)= -0.1010* 2^{11}. Γ(x)=0.1101201.Γ(y)=0.1010211.

阶码符号位阶码数值位尾数符号位尾数数值位
000001001100
000011111010

对阶后:(普通乘除法,小数点前移动,阶码数增加)
$$

阶码符号位阶码数值位尾数符号位尾数数值位
000011000011
000011111010

尾数求和

计算机里求和只能是补码求和,所以把两个数的尾数换算成补码,正数不用变,负数按位取反+1.
Γ ( x ) = 0.0011 ∗ 2 11 . Γ ( y ) = − 0.1010 ∗ 2 11 . \Gamma(x)= 0.0011* 2^{11}. \Gamma(y)= -0.1010* 2^{11}. Γ(x)=0.0011211.Γ(y)=0.1010211.

阶码符号位阶码数值位尾数符号位尾数数值位
000011000011
000011111010

x[原]=00.0011 x[补]=00.0011
x[原]=11.1010 x[补]=11.0110(负数变补码,数值位按位取反并+1)

S=(x+y)[补]=11.1001

尾数规格化

对补码进行规格化需要判断两种情况即:S>0 && S<0
S[补]=00.1******(S>0)
S[补]=11.0******(S<0)

不满足格式需要进行左移,同时阶码相应变化,以满足规格化

阶码符号位阶码数值位尾数符号位尾数数值位
000011111001

S=(x+y)[补]=11.1001
S=(x+y)[补]=11.(1)0010(左移)

阶码符号位阶码数值位尾数符号位尾数数值位
000010110010

S=(x+y)[补]=11.0010

(x+y)[原]=-0.1110

左移右移

S[补]=01.11111111
右移一次:
01.00000000
右移第二次:
00.10000000(0)(0舍)
S[补]=00.10000000(1)(两次右移阶码+2)

舍入(只有右移才需要舍入)

0舍1入法
S[补]=10.10110111
S[补]=11.01011011(1)(右移操作,舍掉最后的1,但是舍掉的1无法存储,就在补码的右移的基础上+1,记得阶码+1)

溢出(之后输入之后才可能溢出)

通过阶码判断是否溢出
阶码10为上溢,01为下溢
阶码表示范围为[-(2m-1),2m-1]
尾数表示范围[-(1-2-n),-(2-n] … [2-n,1-2-n]
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

狗蛋儿l

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

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

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

打赏作者

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

抵扣说明:

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

余额充值