【发布时间】:2012-02-27 01:19:20
【问题描述】:
这个问题来自我的数字逻辑课,但我不明白。请帮助我理解它在问我什么。
假设 A1 和 A2 是八进制简写。
i) A3= A1+A2 ii) A3= A1-A2执行以下 1 的补码定点整数算术运算,并注意每种情况下是否发生幅度溢出:(提示:在另一个八进制简写上使用 7 的补码算术),
我以为你只在想要做减法时才取补数。我不能只以八进制形式进行减法吗?有人可以帮我理解这些问题是什么吗?
【问题讨论】:
这个问题来自我的数字逻辑课,但我不明白。请帮助我理解它在问我什么。
假设 A1 和 A2 是八进制简写。
i) A3= A1+A2 ii) A3= A1-A2执行以下 1 的补码定点整数算术运算,并注意每种情况下是否发生幅度溢出:(提示:在另一个八进制简写上使用 7 的补码算术),
我以为你只在想要做减法时才取补数。我不能只以八进制形式进行减法吗?有人可以帮我理解这些问题是什么吗?
【问题讨论】:
这是一个技巧问题;或者你错误地引用了它。我怀疑你的导师会问前者;所以肯定是后者。
回想一下,1 的补码和是两个操作数(此处为 A1 和 A2)的 XOR。并且在 1s 补码世界中没有进位,因此没有幅度溢出之类的东西。
【讨论】:
我不确定晦涩的“八进制速记”/“7s-complement”如何发挥作用,但这里是“传统”解决方案:
i) A3 = A1+A2
1
2631
84268421
01000000
A1=10100001 = -94
+ A2=10100010 = -93
------------
A3=01000011 = -187 < -127 so we know this is wrong
co: 10100000
CO = 1 which also indicates result is wrong
ii) A3 = A1-A2
1000000
A1=10100001 = -33
- A2=10100010 = -34
------------
A3=????????? = 1 < 127 so we know this is right
==
0000010
A1=10100001
+ A2=01011101
------------
A3=11111110 = -67
co: 00000001 = 1
CO = 0 which also indicates result is right
【讨论】: