定点原码、补码一位乘

计算机组成原理:定点原码、补码一位乘

移位操作对于任何计算机来说都是不可缺少的操作,各种计算机指令系统中都含有移位指令。
这里首先给大家介绍一下移位操作中的算术移位(原码右移、补码右移)
算术原码右移:符号位不变,各位右移,最高有效位补0,末位移出。
列如:1.1001 右移 1.0100 ; 0.1101 右移 0.0110
算术补码右移:符号位不变,同时移至最高有效为,各位右移,最低位移出。
列如:11.01 右移 11.11 ; 00.1011 右移 00.0101

定点原码一位乘 x*y算法:

  1. 位数 n=max(x,y)

  2. 一律用变形码

  3. 加和右移移位完成,符号位不参与运算

  4. 开始部分积00.000…0(n个0)

  5. yn = 0 : +0
    yn = 1 :+x

  6. 右移一位,判断新的yn ,一次重复做n次,得2n位积

  7. 用异或配积的符号位:Ux=Xf ⊕Yf

变形码指的是:符号位采用两位。
列如 1.001 变形码为 11.001
在这里插入图片描述
移位操作是将部分积的最后一位移动到 y中

原码乘法中的符号位本参加运算,需要单独用以个异或门产生乘积的符号位。故人们自然地思考能否让符号数字化后产假乘法运算,补码乘法就可以实现符号位直接参加运算

定点补码一位乘算法(Booth算法):

  1. 准备[x],[-x],[y];增加乘数y的“补充位”Yn+1=0
  2. 位数 n = max(x,y)
  3. 开始部分积:00.0…0(n个0)
  4. 判断 ynyn+1
    ynyn+1={00:+011:+001:+[x]补10+[−x]补 y_ny_{n+1}=\left\{ \begin{array}{rcl} 00 & & :+0\\ 11 & & :+0\\ 01 & &:+[x]_补\\ 10 & & +[-x]_补 \end{array} \right. ynyn+1=00110110:+0:+0:+[x]+[x]
  5. 右移一位
  6. 对4,5步重复n+1次,最后一次只加不移位,2n位的结果是补码如果需要原码,结果还得补一次。

在这里插入图片描述

总结

如果大家有啥不懂的地方,可以在下方评论留言,我看到之后会解答。之后我会更新定点除法运算和浮点算术运算。欢迎大家批评指正!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Champion.XL

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

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

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

打赏作者

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

抵扣说明:

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

余额充值