Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Вычитание в дополнительном коде






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

Вычитание с дополнением также возможно в десятичной системе. Пред­положим, что пятиразрядный спидометр машины показывает 95000 (рис. 8.8). Если машина проедет еще 15 000 км, то спидометр покажет 10 000. Такое же число получится, если от 95 000 отнять 85 000. Число 15 000 называется дополнением к числу 85 000. Конечно, этот способ функционирует только при выполнении условия, что при прибавлении дополнения результат не отображается в шестом разряде. То есть спидометр на рис. 8.8 не может быть шестиразрядным. В компьютерной технике можно просто осущест­влять запрет переносов.

При пятиразрядном представлении в десятичной системе дополнение и вычитаемое в сумме дают число 100000, т. е. 105. При шестиразрядном пред­ставлении в десятичной системе дополнение и вычитаемое в сумме дают 106. Общий принцип гласит:

В десятичной системе дополнение и вычитаемое число дополняют друг друга при п-разрядном представлении до 10n.

Найденное дополнение называется 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.

Пример —————————————————————————————

Итак, можно сформулировать следующее правило.

В двоичной системе дополнение и вычитаемое число дополняют друг дру­га при n-разрядном представлении до 2n.

 

Если требуется найти дополнение вычитаемого числа, то прежде всего нужно знать, с каким количеством разрядов предстоит работать. В компью­терной технике разрядность известна заранее. Для наших примеров мы принимаем разрядность 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 меньше дополнения к вычитаемому.

 

Если к полученному коду добавить 1, то получается искомое дополнение.

 

Для получения дополнения в двоичной системе следует воспользоваться следующим алгоритмом: 1.Расширить вычитаемое число до полноразрядного формата добавлени­ем ведущих нулей 2.Инвертировать вычитаемое. 3.К инверсии добавить число 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

?

 

                Уменьшаемое число
 
                Инвертированное уменьшаемое число
            +    
                Дополнение

 

Перенос 1       І        
                   
Дополнение +       0.        
Результат:                  

 

=20

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал