我無法理解什麼是「正確的」,並且在使用十六進制值進行加減運算時不正確。我想指出,我將要處理BYTE大小的數據。作爲一個例子,當我添加6C(十六進制)+ 7D(十六進制),我得到答案E9(十六進制)。現在,從我的角度來看,我知道E9是一個無符號整數的正確答案。 108(6C)+ 125(7D)= 233(E9)如何知道你的十六進制加法是否是一個有符號整數是正確的?
然而,當我試圖確定這是否是正確答案爲簽名回答我的問題出現了...
我應該思考INITIAL添加的邏輯? (並且表明由於6C(A正)+ 7D(正)E9不正確,所以不能等於E9(負符號表示法),因爲增加2個正數不能成負數。)
...或我應該說E9是不正確的,因爲它超出範圍[-128,+ 127]
..或者我應該看看它完全不同,取7D的二進制補碼並從6C中減去,看看是否那個答案適合於確定它的正確與否?
基本上,我只需要指出正確的方向尋找什麼來確定是否正確答案的簽名版本。我喜歡這些類型的一步一步的指示,但是我的彙編語言書並沒有太多幫助。
據我所知,減去。因爲我可以取加減運算的2的補碼,並且通常按照你所說的加上它(A - B = A +(-B))所以你說如果沒有來自加法的溢出位,相應的答案將會是正確簽署? 6C + 7D給出了一個內部進位,但不是一個外部進位,那麼內部進位是否會被認爲是溢出,從而使得答案E9不正確(如簽名)? – 2015-02-11 22:35:09
評論您的編輯:完美!這解釋了我的。感謝您花時間發佈您的詳細解釋,非常感謝。 – 2015-02-12 00:14:57