2013-12-17 78 views
0

我想。减去92H-64H两个的互补和国家进位标志位C和溢出标志位V是否是1或0 到目前为止,转换和十进制检查,这是没有问题的 146-100=46=2EH 但我迷失在执行减法来逐位检查位。我可以想象它是用二进制完成的,但是怎么做?感谢任何帮助!十六进制U2减法

+0

“减去92H-64H在两个补码中” - 这是否意味着你需要减去每个数字的* 2补码*? – usr2564301

回答

0

你必须以二进制运行。十六进制不过是一个简单的(少于数字的)方法来显示内部二进制数字。

这就是说,你两个数字:

92h - 64h。我假设你用8位工作。将它们转换成二进制:1001 0010 - 0110 0100

要。减去使用C2,在第二个号码,0110 0100

反转其位:1001 1011

添加一个:1001 1011 + 1 = 1001 1100

这个新号码添加到先前的第一number:

1001 0010 
1001 1100 
--------- 
10010 1110 

进位是第9位b它的这一点。在这种情况下是1. 溢出位的计算方法如下:在每个数字的第8位中加上:1,1,1和0.这些是每个数字的符号位。

如果操作数1和2的两个符号都相同,则结果的符号不同。在其他情况下,没有溢出。

此外,两个操作数的符号是​​相同的(1),但结果的符号不是(它是0),所以这里有溢出。

顺便说一句,这个加法的结果(取其低8位,丢弃进位位)是原始减法的结果。

加法的结果是0010 1110,它是十六进制的2E

所以92h - 64h = 2Eh,进位是1,溢出是1