补码一位除法的原理
在分析補碼除法時,需要額外考慮符號位參與計算。在這里為了表示方便,用[x]表示x的補碼,x*表示x絕對值。
在比較被除數x和除數y的大小關系時,由于參與運算的均為補碼,不能直接用[x]-[y]來比較大小。
例如[5-9] mod 10 = 6,但實際上5比9要小。所以直接考慮絕對值的計算。
x,y同號時,計算x*-y*可以用[x]-[y]表示,結果符號與y符號相同則表示夠減,與y符號不同則不夠減。
比如:計算3/2,3-2=1 ,(-3)-(-2)=(-1)。
x,y異號時,計算x*-y*可以用[x]+[y]表示,結果符號與y符號相異則表示夠減,與y符號相同則不夠減。
比如:計算(-5)/3,(-5)+3=-2,夠減,3/(-5),3+(-5)=(-2),不夠減。
另外分析補碼除法時,末尾恒置1也是有原因的。
因為補碼有一個規律,補碼的最后一個數字到往左數第一個1(包含這個1)與原碼相同,其他與原碼相反。這樣便于確定其他位上商0還是1。
總結
- 上一篇: 第一次渗透实验
- 下一篇: 【程序包uti1不存在怎么办?】求解答