"Ассемблер и программирование для IBM PC. (IBM PC assembler language and programming)" - читать интересную книгу автора (Абель Питер, Переводчик: Ю.В.Сальников) Двоичное вычитание выполняется просто: инвертируется знак вычитаемого
и складываются два числа. Вычтем, например, 42 из 65. Двоичное представление для 42 есть 00101010, и eго двоичное дополнение: - 11010110: 65 01000001 +(-42) 11010110 ----- -------- 23 (1) 00010111 Результат 23 является корректным. В рассмотренном примере произошел перенос в знаковый разряд и из разрядной сетки. Если справедливость двоичного дополнения не сразу понятна, рассмотрим следующие задачи: Какое значение необходимо прибавить к двоичному числу 00000001, чтобы получить число 00000000? В терминах десятичного исчисления ответом будет -1. Для двоичного рассмотрим 11111111: 00000001 11111111 -------- Результат: (1) 00000000 Игнорируя перенос (1), можно видеть, что двоичное число 11111111 эквивалентно десятичному -1 и соответственно: 0 00000000 ---- -------- -1 11111111 Можно видеть также каким образом двоичными числами предcтавлены уменьшающиеся числа: +3 00000011 +2 00000010 +1 00000001 0 00000000 -1 11111111 -2 11111110 -3 11111101 Фактически нулевые биты в отрицательном двоичном числе определяют его величину: рассмотрите позиционные значения нулевых битов как если это были единичные биты, сложите эти значения и прибавьте единицу. Данный материал по двоичной арифметике и отрицательным числам будет особенно полезен при изучении гл.12 и 13. ШЕСТНАДЦАТИРИЧНОЕ ПРЕДСТАВЛЕНИЕ ________________________________________________________________ |
|
|