Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Вычитание в дополнительном коде
В компьютерной технике вычитание производится преимущественно добавлением дополнения к вычитаемому числу. Вычитание с дополнением также возможно в десятичной системе. Предположим, что пятиразрядный спидометр машины показывает 95000 (рис. 8.8). Если машина проедет еще 15 000 км, то спидометр покажет 10 000. Такое же число получится, если от 95 000 отнять 85 000. Число 15 000 называется дополнением к числу 85 000. Конечно, этот способ функционирует только при выполнении условия, что при прибавлении дополнения результат не отображается в шестом разряде. То есть спидометр на рис. 8.8 не может быть шестиразрядным. В компьютерной технике можно просто осуществлять запрет переносов. При пятиразрядном представлении в десятичной системе дополнение и вычитаемое в сумме дают число 100000, т. е. 105. При шестиразрядном представлении в десятичной системе дополнение и вычитаемое в сумме дают 106. Общий принцип гласит:
Найденное дополнение называется B-дополнением. В двоичной системе вычитание в дополнительном коде производится аналогичным образом. В приведенном примере нужно вычесть из числа 15 число 7. Результат будет 8. Какое число должно быть прибавлено к 15(10) = 1111(2), чтобы в результате получилось 8(10) = 1000(2) при условии, что перенос в 5 разряде запрещен? Методом подбора находим число 1001(2)= 9(10). Это число является дополнением к 111(2) = 7(10). При четырехзначном представлении дополняют вычитаемое число до 16 =24. При пятизначном представлении— до 25 = 32. В следующем примере показано, как дополнение (25) и вычитаемое (7) дополняют друг друга до 32. Пример ————————————————————————————— Итак, можно сформулировать следующее правило.
Если требуется найти дополнение вычитаемого числа, то прежде всего нужно знать, с каким количеством разрядов предстоит работать. В компьютерной технике разрядность известна заранее. Для наших примеров мы принимаем разрядность 6. Если вычитаемое число имеет меньше значащих цифр, чем 6, то оно расширяется ведущими нулями до достижения заданного 6-разрядного формата. Пример ————————————————————————————— При 6 разрядах сумма дополнения и вычитаемого должна быть равна 26 - 64. Если вычитаемое число 7, то дополнение должно быть 57. Если теперь проинвертировать расширенное число, т. е. вместо всех 0 записать 1 и вместо всех 1 записать 0, то получится число, которое только на 1 меньше искомого дополнения. Получается число 56.
Пример ————————————————————————————— 32 16 8 4 2 1 0 0 0 1 1 1 = 7 ↓ ↓ ↓ ↓ ↓ ↓ 1 1 1 0 0 0 = 56
Это не случайность, а закономерность, которую можно проверить на следующих примерах.
Если к полученному коду добавить 1, то получается искомое дополнение.
Справедливость этого метода доказана на следующих примерах. Пример (6-разрядное представление)___________________________________ 1 0 1 1 1 1 = 47 - 1 1 0 1 1 = 27 ?
0 1 1 0 1 1 Уменьшаемое число ↓ ↓ ↓ ↓ ↓ ↓ 1 0 0 1 0 0 Инвертированное уменьшаемое число + 1 1 0 0 1 0 1 Дополнение
Перенос
Дополнение Результат
Пример (8-разрядное представление) ————————————————— 1 0 1 1 1 1 = 47 — 1 1 0 1 1 = 27 ?
=20
|