X=-0011 Y=0101 算X·Y的补码

用那个什么…x补 -x补 y补那份yn+1那种加一次数右移的那种方法!谢谢!

第1个回答  推荐于2016-06-17
用Booth算法(补码乘法)解答:
初始值:
R0 = 0000
R1 = [X]补 = 1101,R1最低位用“R1。”表示,
R2 = [Y]补= 0101,-R2 = [-Y]补 = 1011,
辅助位 P = 0

R0, R1, P
--------------
 0000 1101 0 初始值
--------------
  第一次循环,R1。P=10,
R0=R0-R2=0000+1011=1011:
 1011 1101 0
R0、R1 右移1位得:
1101 1110 1
--------------
  第二次循环,R1。P=01
R0=R0+R2=1101+0101=0010:
0010 1110 1
  R0、R1 右移1位得:
0001 0111 0
--------------
  第三次循环,R1。P=10
R0=R0-R2=0001+1011=1100:
1100 0111 0
   R1。R1 右移1位得:
1110 0011 1
--------------
  第四次循环,R1。P=11
无操作
1110 0011 1
 R0、R1 右移1位得:
1111 0001 1
--------------
[Y.X]补 = 1111 0001
[Y.X]反 = 1111 0000
[Y.X]原 = 1000 1111
X.Y=Y.X = -000 1111B = -15D本回答被提问者和网友采纳