2013-09-04 9 views
0

Я пытаюсь сделать следующую задачу:Hex Двойки комплемента Арифметика

E8B2035D 
-FB60528D 
---------- 

В которой, целые числа, представленные в шестнадцатеричные представления 32-разрядных до двух двоичных чисел комплимента. Каков наилучший подход для решения этой проблемы и обнаружения переполнения?

ответ

4

Вычитание становится дополнением при использовании двух дополнений. Поэтому я бы взял дополнение к второму числу, а затем добавлю их:

Как вы знаете, дополнение к числу чисел начинается, поворачивая каждый 1 на 0 и наоборот (удобное эмпирическое правило: сделать 15 - число , так что F -> 0, Е -> 1, D -> 2, и т.д.):

FB60528D --> 049FAD72 

Затем добавьте к номеру (в данном случае, 2 + 1 = 3, и нет переноса):

049FAD73 -- the two's complement of FB60528D 

Теперь мы добавляем цифры, используя обычные правила добавления:

E8B2035D 
049FAD73 + 
---------- 

D + 3 = 10 : write 0, carry 1 
1 + 5 + 7 : write D, carry 0 
3 + D = 10 : write 0, carry 1 
1 + 0 + A : write B, carry 0 
2 + F  : write 1, carry 1 
1 + B + 9 : write 5, carry 1 
1 + 8 + 4 : write D, carry 0 
E + 0  : write E 

Конечный результат (до сих пор в виде дополнения до двух) является

ED51B0D0 

Вы бы обнаружить переполнение, если последний расчет произошел перенос (число>F).

 Смежные вопросы

  • Нет связанных вопросов^_^