不恢复余数法,又称加减交替法。
其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算,
因此步数固定,控制简单。
原码加减交替法的规则是:
当余数为正时,商“1”,余数左移一位减除数;
当余数为负时,商“0”,余数左移一位,加除数。
[x]原=[x]补=0.1001,[y]原=[y]补=0.1011,[-y]补=1.0101
被除数x/余数r商数q说明
00.1001
+[-y]补11.0101x减y
----------------------------------------------------------------
11.1110余数r0<0,商0
←11.11000商0,r和q左移一位
+[y]补00.1011加y
----------------------------------------------------------------
00.0111余数r1>0,商1
←00.11100.1商1,r和q左移一位
+[-y]补11.0101减y
----------------------------------------------------------------
00.0011余数r2>0,商1
←00.01100.11商1,r和q左移一位
+[-y]补11.0101减y
----------------------------------------------------------------
11.1011余数r3<0,商0
←11.01100.110商0,r和q左移一位
+[y]补00.1011加y
----------------------------------------------------------------
00.0001余数r4>0,商1
1101商1,仅q左移一位
所以x/y的商[q]原=0.1101,余数[r]原=0.00000001
这就是加减交替法的基本步骤,希望对你有帮助。
答案是:x/y=0.10999890001099989000109998900011
两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。
设有n位定点小数(定点整数也同样适用):
被除数x,其原码为[x]原=xf.x1x2…xn
除数y,其原码为[y]原=yf.y1y2…yn
设商为q=x/y,其原码为[q]原=(xf⊕yf).(x1x2…xn/y1y2…yn)
商的符号运算qf=xf⊕yf与原码乘法一样,用模2求和得到。商的数值部分的运算,实质上是两正数求商的运算。根据我们所熟知的十进制除法运算方法,很容易得到二进制数的除法运算方法,所不同的只是在二进制中,商的每一位不是“1”就是“0”,其运算法则更简单一些。