Схемотехника ТТЛШ и КМОП-транзисторной логики. Каскадное соединение дешифраторов, страница 14

кроме обратного, существует еще дополнительный код.

Положительное число записывается также, как и в прямом (в знаковом разряде – 0).

Отрицательное число (в знаковом разряде – 1). Значащие разряды инвертируются, и к младшему разряду добавляется единица. Запись того же отрицательного числа в дополнительном коде.

Использование этих кодов позволяет заменить суммированием определение разности. Т.о. в обратном коде получаем:

.

В результате сложения прямого и обратного кодов, в полученной сумме образовалось переполнение. Сложим это переполнение с младшим разрядом:

. Т.к. в полученном результате z=0, то это означает, что результат вычитания положителен и записан в прямом коде, в этих значащих разрядах. .

Вычислим ту же разность в дополнительном коде. В дополнительном коде переполнение игнорируется. Т.к. z=0, то это означает, что результат оказался положительным и . Преимущество этого способа в том, что не нужно делать переносов.

Т.о. если в результате сложения положительного и отрицательного чисел, записанных в одном из кодов (дополнительном или обратном), в знаковом разряде стоит "0", то результат положителен и записан в прямом коде.

Если же в знаковом разряде стоит "1", то результат отрицателен и записан в том коде, который использовался в представлении отрицательного числа.

Если при суммировании имеет место переполнение, то оно должно быть добавлено к младшему разряду, в случае использования обратного кода, если используется дополнительный код, то переполнение просто отбрасывается (игнорируется).

Лекция 7 (начало).

Вычитатели строят на основе сумматоров и логических элементов "сумма по модулю два".

Положим, что число "А" – положительно и называется уменьшаемым, а число "В" – отрицательно и называется вычитаемым.

а

b

у

0

0

0

0

1

1

1

0

1

1

1

0

Вход Z называется знаковым разрядом и служит, в данном случае, для переключения из режима суммирования в режим разности. На основании таблицы истинности логической функции "сумма по модулю два" (управляемый инвертор), можно заключить, что когда на входе Z действует низкий логический уровень, тогда все элементы М2 работают в режиме трансляции, а число "В" – положительно и на выходе, в результате, получаем сумму чисел "А" и "В".

При подаче на вход Z уровня логической единицы все элементы М2 начинают работать в режиме инверсии, следовательно число "В" инвертируется, а по входу переноса "С" к инвертированному числу добавляется 1 и, т.о., формируется дополнительный код отрицательного числа "В". В результате сумматор вычисляет сумму прямого кода положительного числа "А" и дополнительного кода отрицательного числа "В".