Вычитание чисел в дополнительном коде
ПРАКТИЧЕСКАЯ РАБОТА №3
Изучение принципов выполнения операций сложения и вычитания в двоичной ССЧ
Цель работы: изучить принципы выполнения операций сложения и вычитания в двоичной системе счисления.
Сложение
За одно действие складываются всегда только два числа. Если нужно сложить сумму нескольких чисел, то сначала складывают первое и второе число. Затем к результату прибавляется третье число. Далее к найденному результату прибавляется четвертое число и так далее, пока не будут сложены все числа. Сложение в столбик сразу нескольких чисел, как для десятичных чисел, в двоичном счислении не принято. Принципиально это возможно, однако в процессе вычисления возникают сложности с переносом старших разрядов.
Оба складываемых числа пишутся поразрядно друг над другом. Затем складываются две цифры столбца с наименьшим разрядом. В случае переноса единица записывается в следующий столбец и учитывается при его сложении. То есть в случае переноса нужно складывать три двоичных числа. По такому алгоритму складываются столбец за столбцом справа налево, пока не будут сложены все цифры.
Правила сложения в двоичной системе:
Арифметические действия в двоичной системе выполняют аналогично десятичной.
Рассмотрим сущность выполнения действия сложения, например, чисел 45 и 87 в десятичной системе. Сначала складываем цифры младшего разряда — пулевого, соответствующего 10° — единицам: 5 + 7 = 12. В числе 12 уже две цифры, причем цифра младшего разряда суммы — 2, а цифра 1 принадлежит более старшему разряду — первому, соответствующего 101 — десяткам. Поэтому 2 записываем, 1 — запоминаем, т.е. в младшем разряде суммы, соответствующем единицам, будет 2, а 1, соответствующую более старшему разряду — десяткам, будем учитывать при сложении цифр первого разряда. Далее складываем цифры первого разряда 4 + 8 и прибавляем к ним 1, которую запомнили; получаем 13. Теперь цифра, соответствующая первому разряду суммы — 3, а 1 переносится в старший разряд, соответствующий второму разряду суммы — 102, т.е. сотням.
Аналогично выполняется сложение в двоичной системе, например, числа «шесть» и «семь». Числа шесть и семь в двоичной системе имеют вид:
6 → 110
7 → 111
Сложение начинаем с нулевого разряда, соответствующего 2°:
0+1 = 1 (младшая цифра суммы равна 1).
Переходим к сложению цифр первого разряда, соответствующего 21 : 1 + 1 =2. Для записи числа 2 в двоичной системе требуется код: 10 (1 • 21 + 0 • 2° = 2), т.е. цифра первого разряда суммы равна 0, а 1 переносим в старший разряд (нуль записываем, один запоминаем). Таким образом, если сумма цифр больше единицы, происходит перенос в старший разряд.
Далее складываем 1 + 1 и прибавляем 1, которую запомнили, получаем 3. Число 3 в двоичной системе записываем кодом 11 (1 • 21 + 1 • 2° = 3), т.е. цифра второго разряда суммы равна 1, а старшая 1 переносится в следующий (третий) разряд.
Таким образом, сумма чисел 110 и 111 равна 1101. Нетрудно убедиться, что это двоичное число — 13 (1 • 23 + 1 • 22 + 0 • 21 + 1 • 2° = 13).
Таблица 1
Вычитание
Рассмотрим теперь сущность действия вычитания в десятичной системе на примере: 132 — 87:
• сначала вычитаем цифры нулевого разряда, но так как из двух нельзя вычесть семь, занимаем 1 (один десяток — основание системы счисления) в старшем разряде, что отмечаем точкой над цифрой 3; получаем 10 + 2 = 12; 12-7 = 5;
• при вычитании цифр первого разряда необходимо занять 1 в следующем старшем разряде и, учитывая, что в первом разряде осталась цифра 2, получаем 10 + 2 — 8 = 4.
•
• Правила вычитания в двоичной системе:
• |
• Для вычитания из «0» «1» требуется занять старший разряд. 0 – 1 = 1
Аналогично выполняем вычитание из числа 1101 (13) числа 110 (6) в двоичной системе:
• нулевой (20) разряд: 1 -0=1;
• первый (21) разряд: из нуля нельзя вычесть единицу, поэтому занимаем 1 (т.е. одно основание системы счисления, равное двум) и получаем 2 - 1 = 1;
• второй (22) разряд: из нуля, оставшегося после занимания единицы в этом разряде, нельзя вычесть единицу, поэтому занимаем 1 (основание, равное двум) в третьем (23) разряде: 2-1 = 1. Получим 111, т.е. двоичное число «семь».
Еще один пример вычитания:
Вычитание чисел в дополнительном коде
В компьютерной технике вычитание производится преимущественно добавлением дополнения к вычитаемому числу.
Вычитание с дополнением также возможно в десятичной системе. Предположим, что пятиразрядный спидометр машины показывает 95000 (рис. 1). Если машина проедет еще 15 000 км, то спидометр покажет 10000. Такое же число получится, если от 95 000 отнять 85 000. Число 15 000 называется дополнением к числу 85 000. Конечно, этот способ функционирует только при выполнении условия, что при прибавлении дополнения результат не отображается в шестом разряде. То есть спидометр на рис. 1 не может быть шестиразрядным. В компьютерной технике можно просто осуществлять запрет переносов.
Рис. 1. Вычитание в дополнительном коде
Правило вычитания двоичных чисел с помощью дополнительного кода.
1. Расширить вычитаемое число до полноразрядного формата добавлением ведущих нулей
2. Инвертировать вычитаемое
3. К инверсии добавить число 1 – получим дополнение
4. Сложить уменьшаемое число и дополнение.
5. Отбросить старший разряд
Пример.
= | Уменьшаемое число | ||||||||
- | = | Вычитаемое число |
- | Вычитаемое число с добавлением ведущих нулей | ||||||||
↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ||||
Инвертированное вычитаемое число | |||||||||
+ | |||||||||
Дополнение | |||||||||
● | ● | ● | ● | Перенос разряда | |||||
= | Уменьшаемое число | ||||||||
+ | Дополнение | ||||||||
= | Результат |
Старший разряд отброшен.
Практическая часть.