- •2. Цифровые устройства
- •2.2 Введение в математические основы цифровой схемотехники
- •2.2.1 Системы исчисления
- •2.2.2 Элементы двоичной арифметики
- •2. Дополнительный код отрицательного числа создается путем единичного значения знакового разряда, инвертирования всех остальных цифровых разрядов и добавления “1” к младшему разряду.
- •2.2.3 Контрольные вопросы к разделу 2.2.3
2.2.2 Элементы двоичной арифметики
В основе числовой обработки цифровой информации, осуществляемой цифровыми устройствами, лежат простые арифметические действия: сложение, вычитание, умножение, деление. Причем последние также реализуются с помощью сложения и вычитания. Правила, по которым выполняются арифметичеcкие действия над одноразрядными двоичными числами, состоят в следующем:
Таблица 2
Сложение |
Вычитание |
Умножение |
0+0=0 |
0-0=0 |
00=0 |
1+0=1 |
1-0=1 |
10=0 |
0+1=1 |
1-1=0 |
01=0 |
1+1=10 |
10-1=1 |
11=1 |
Сложение и вычитание двух многоразрядных двоичных чисел производится поразрядно и учитывает единицы переполнения при сложении от предыдущих разрядов и единицы заема от старших разрядов при вычитании, как это иллюстрируется примерами:
Умножение и деление многоразрядных чисел производится, как и в десятичной арифметике, путем мннгоразового сложения промежуточных сумм и сдвигов (при умножении) и многоразового вычитания (при делении); то есть, с помощью сложения и вычитания можно реализовать и другие арифметические действия. Более того, путем использования специально построенных кодов двоичных чисел оказывается возможным вычитание заменить операцией суммирования и тем самым упростить решение схемотехнических задач. Эти коды носят название прямого, обратного и дополнительного. Прямой код дает изображение числа с учетом знака. При этом старшему разряду отводится роль знакового, и он отделяется от основной части числа запятой. Положительным числам присваивается нуль в старшем разряде, отрицательным- единица Пример: 0, 101- положительное число 5; 1, 1010- отрицательное число 10.
При проведении вычислений прямой код применяется только при записи положительных двоичных чисел. Отрицательные же числа удобно представлять или в дополнительном, или в обратном коде.
Правила составления дополнительного и обратного кодов состоят в следующем:
1. Дополнительный и обратный коды положительного числа совпадают с его прямым кодом
2. Дополнительный код отрицательного числа создается путем единичного значения знакового разряда, инвертирования всех остальных цифровых разрядов и добавления “1” к младшему разряду.
3. Обратный код аналогичен дополнительному без добавления единицы к младшему разряду.
Прямой код получается по тем же правилам из дополнительного и обратного.
Изложенные выше процедуры образования кодов иллюстрируются приведенными в таблице 3 результатами
Таблица 3
Число |
Прямой код |
Обратный код |
Дополнительный код |
X1= 0,11001 |
X1= 0,11001 |
X1ОБ= 0,11001 |
X1ДОП= 0,11001 |
X2=- 0,01100 |
X2= 1,01100 |
X2ОБ= 1,10011 |
X2ДОП= 1,10100 |
Чтобы сложить числа в обратном коде, надо значащие разряды сложить как разряды целых чисел; единица переполнения, получаемая в знаковом разряде, прибавляется к младшему разряду (это действие носит название циклического переноса). Приведем пример сложения ( точнее вычитания) двух двоичных чисел X1, X2, представленных в таблице 4, на основе обратного кода:
Легко убедиться, что полученное двоичное число, полученное по выше приведенному правилу, равняется 25-12=13.
Сложение чисел в дополнительном коде осуществляется следующим образом:
Значащие разряды складываются поразрядно, знаковые разряды- как разряды целых чисел, а единица переполнения в знаковом разряде не учитывается. Если при этом знаковый разряд равен нулю, то результат суммирования- положительное число. Единице в знаковом разряде соответствует отрицательное число, представленное в обратном или в дополнительном коде, который при необходимости можно обратить в прямой код.
Найдем, например, разность чисел X1+X2, положив: X1=-2510=1,11001ПР=1,00111ДП; X2=1210=0,01100ПР=0,01100ДП. Применяя правила сложения чисел в дополнительном, получим:
Так как в знаковом разряде присутствует “1”, то результатом сложения является отрицательное число, записанное в дополнительно коде. Чтобы перевести его в прямой код, сначала проводим инвертирование, а затем прибавляем в младший разряд единицу. Итог этих действий запишется в виде:X1+X2=1,01101ПР=-13.
В заключение заметим, что суммирование чисел с одинаковыми значениями знаковых разрядов проводится по правилам суммирования двоичных чисел с присвоением общего для них знака числа.