原码除法运算
恢复余数法
- 由于原码表示与无符号数非常类似,仅比无符号数多一个符号,因此,进行原码除法运算时,可将符号位与数值部分分开处理
- 商的符号:由被除数和除数各自的符号进行异或运算求得;
- 商的数值部分:由被除数和除数各自的数值部分即真值的绝对值相除求得。
前提条件:
- 除数+0
- 定点小数:|被除数| < |除数|
- 定点整数:|被除数|≥|除数|
- 商的符号 = 被除数的符号 xor 除数的符号
- |商| = |被除数| ÷ |除数|
- 将商的符号与|商|拼接在一起

不恢复余数法

举个栗子

补码除法运算
不恢复余数法
与原码除法将符号位和数值部分分开处理不同,补码除法将符号位和数值部分一起参加运算,商符是在求商的过程中自然形成的。因此,补码除法的运算方法没有原码除法的运算方法直观,需要解决以下3个主要问题:
- 如何处理商值
- 如何处理商符
- 如何得到新余数
举个例子:

注意:
- 开始的时候, 同号相减商1, 异号相加商0
- 商1相减, 商0相加
- 每次比较都是和y补相比较
- 开始的时候是x补和y补相比较, 并且没有位移运算
- 注意次数要对, 不要多算了