![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Сложение (вычитание). Операция вычитания приводится к операции сложения путем преобразования чисел в обратный или дополнительный код. Пусть числа АаО и ВгО, тогда операция алгебраического сложения выполняется в соответствии с табл. 2.3.
Таблица 2.3
Таблица преобразования кодов при алгебраическом сложении
Требуемая операция | Необходимое преобразование |
А+В А-В -А+В -А-В | А+В А+(-В) (-А)+В (-А)+(-В) |
Скобки в представленных выражениях указывают на замену операции вычитания операцией сложения с обратным или дополнительным кодом соответствующего числа. Сложение двоичных чисел осуществляется последовательно, поразрядно в соответствии с табл. 2.2. При выполнении сложения цифр необходимо соблюдать следующие правила.
1. Слагаемые должны иметь одинаковое число разрядов. Для выравнивания разрядной сетки слагаемых можно дописывать незначащие нули слева к целой части числа и незначащие нули справа к дробной части числа.
2. Знаковые разряды чисел участвуют в сложении так же, как и значащие.
3. Необходимые преобразования кодов (п.2.3.1) производятся с изменением знаков чисел. Приписанные незначащие нули изменяют свое значение при преобразованиях по общему правилу.
4. При образовании единицы переноса из старшего знакового разряда, в случае использования ОК, эта единица складывается с младшим числовым разрядом. При использовании ДК единица переноса теряется. Знак результата формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые.
Сложить два числа: А10=7; В10 =16.
Исходные числа имеют различную разрядность, необходимо провести выравнивание разрядной сетки:
Сложение в обратном или дополнительном коде дает один и тот же результат:
Обратим внимание, что при сложении цифр отсутствуют переносы в знаковый разряд и из знакового разряда, что свидетельствует о получении правильного результата.
Сложить два числа: А10 = + 16; В10 = -7 в ОК и ДК. В соответствии с табл. 2.3 должна быть реализована зависимость А+(-В), в которой второй член преобразуется с учетом знака
Сложение в ОК Сложение в ДК
[А2]ок=0: 10000 [А2]дк=0: 10000
+[В2]ок= 1: 11000 +[В2]дк= 1: 11001
0: 01000 0: 01001
+ 1
0: 01001
C2=0: 01001 C2=0: 01001
C10=+9 C10=+9
При сложении чисел в ОК и ДК были получены переносы в знаковый разряд и из знакового разряда. В случае ОК перенос из знакового разряда требует дополнительного прибавления единицы младшего разряда (см. п.4 правил). В случае ДК этот перенос игнорируется.
Умножение. Умножение двоичных чисел наиболее просто реализуется в прямом коде. Рассмотрим, каким образом оно приводится к операциям сложения и сдвигам.
Умножить два числа А10 = 7; В10 = 5. Перемножим эти числа, представленные прямыми двоичными кодами, так же, как это делается в десятичной системе.
[А2]п = 111 -- множитель
х х
[В2]п = 101 -- множитель
111 -- множимое (сдвиг на 0 разрядов)
+ 000 -- умножение на 0 (сдвиг на 1 разряд)
111 -- множимое (сдвиг на 2 разряда)
[C2]п=100011 -- произведение
C10=35
Нетрудно видеть, что произведение получается путем сложения частных произведений, представляющих собой разряды множимого, сдвинутые влево в соответствии с позициями разрядов множителя. Частные произведения, полученные умножением на нуль, игнорируются. Важной особенностью операции умножения «-разрядных сомножителей является увеличение разрядности произведения до n+n=2n. Знак произведения формируется путем сложения знаковых разрядов сомножителей. Возможные переносы из знакового разряда игнорируются.
Деление. Операция деления, как и в десятичной арифметике, является обратной операции умножения. Покажем, что и эта операция приводится к последовательности операций сложения и сдвига.
Разделить два числа А10 =45; В10 = 5
[А2]п=101101
[В2]п=101
Делимое Делитель
101101 101
-101 1001 -- частное
- 101
[С2]п=1001
С10=9
Деление произведено так же, как это делается обычно в десятичной системе. Сначала проверяется, можно ли вычесть значение делителя из старших разрядов делимого. Если возможно, то в разряде частного записывается единица и определяется частная разница.
В противном случае в частное записывается нуль и разряды делителя сдвигаются вправо на один разряд по отношению к разрядам делимого.
К полученной предыдущей разнице сносится очередная цифра делимого, и данный процесс повторяется до тех пор, пока не будет получена необходимая точность. Если учесть, что все вычитания в ЭВМ заменяются сложением в ОК или ДК (см. табл. 2.3), то действительно операция деления приводится к операциям сложения и сдвигам вправо разрядов делителя относительно разрядов делимого.
Отметим, что делимое перед операцией деления должно быть приведено к 2п-раз-рядной сетке. Только в этом случае при делении на «-разрядный делитель получается «-разрядное частное.
Знак частного формируется также путем сложения знаковых разрядов делимого и делителя, как это делалось при умножении.
34 Арифметические операции над числами
Дата публикования: 2015-02-03; Прочитано: 241 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!