带符号数的定点乘除运算

两个二进制带符号数相加时通常采用变形补码,即双符号位补码,有利于检测溢出。
带符号数的算数移位规则:(数的符号不变!!!)
原码:
正数:左移右移都补0
负数:左移右移都补0
补码:
正数:左移右移都补0
负数:左移补0,右移补1

定点乘法运算

1.原码一位乘法

X , Y是两个n位(除符号位以外)二进制数

利用三个寄存器A、B、C

A:初值为零,并存放结果的高位部分
B:存放|X|
C:存放|Y|和结果的低位部分

步骤:
(1)取X,Y的绝对值|X|,|Y|

(2)Cn=

  • 1 ——+|X|
  • 0 ——+0

(3)部分积右移一位

(4)重复(2)、(3)n次

2. 补码一位乘法

A:初值为零,并存放结果的高位部分
B:存放X补码
C:存放Y补码和结果的低位部分

(1)补码表示X,Y

(2)符号位参加运算

(3)乘数最低位后面加一位附加位,为0

(4)(n+1)次累加,n次移位

CnCn+1=          01   +[X]补,右移一位

 				 10    +[X],右移一位

				 00或11    只右移一位

定点除法运算

1. 原码加减交替法(不恢复余数法)

3个寄存器:
A:存放被除数X 和中间过程中产生的余数
B:存放除数Y
C:存放商,初值为0

步骤;
(1)被除数-除数

(2)余数的符号

  • 正 商1,余数左移一位,减除数(+【-Y】补)
  • 负 商0,余数左移一位,加除数

(3)重复(2)n+1次,若(n+1)次的余数为负数,则进行第(n+2)次,只+|Y|

2. 补码除法运算

寄存器的存放同上

步骤:
(1)被除数与除数 同号 被除数减除数
异号 被除数加除数

(2)中间过程余数与除数

  • 同号 商1,余数左移一位,减除数
  • 异号 商0,余数左移一位,加除数

(3)重复(2),做n+1次加减运算,n次移位。

(4)末位置1

!!!由于每次加减运算以后都要向左移位,所以最后得到的余数是放大了n倍的余数,真正的余数是 计算出的余数 * 2 的负n次幂!!!

最后结果的计算公式:
X/Y = 商 + 余数 / 除数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值