кроме обратного, существует еще дополнительный код.
Положительное число записывается также, как и в прямом (в знаковом разряде – 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 и, т.о., формируется дополнительный код отрицательного числа "В". В результате сумматор вычисляет сумму прямого кода положительного числа "А" и дополнительного кода отрицательного числа "В".
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.