2013-12-17 109 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