«Двоичная арифметика, алгоритм сложения». Учебные вопросы: 1. Правила недесятичной арифметики. 2. Способы представления чисел в разрядной сетке ЭВМ.
Арифметические операции над двоичными числами Сложение (вычитание). Операция вычитания приводится к операции сложения путем преобразования чисел в обратный или дополнительный код. Пусть даны числа А 0 и В 0, тогда операция алгебраического сложения выполняется в соответствии с Табл. 1 При выполнении сложения цифр необходимо соблюдать следующие правила: 1. Слагаемые должны иметь одинаковое число разрядов. Для выравнивания разрядной сетки слагаемых можно дописывать незначащие нули слева к целой части числа и незначащие нули справа к дробной части числа. 2. Знаковые разряды чисел участвуют в сложении так же, как и сами числа. 3. Преобразования кодов производятся с изменением знаков чисел. Приписанные незначащие нули изменяют свое значение при преобразованиях по общему правилу. 4. При сложении цифры знаковых разрядов складывают с отбрасыванием возникающего из этого разряда переноса. Знак результата формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые.
Правила недесятичной арифметики Сложение трех однозначных двоичных чисел производится по следующим правилам: = 0, = = = = = = = 11 В вычислительной технике операции вычитания заменяются обычно операциями сложения. Пример 1 85 – 37 = 48 Вместо того, чтобы из числа 85 вычитать число 37, к числу 85 прибавляется число 63 = 100 – 37 (дополнительное к 37) и от результата 148 отнимается единица в старшем разряде. Получается число 48, которое является искомой разностью. Аналогичным образом можно и в двоичной системе заменить вычитание сложением с использованием двоичного кода. Саму операцию вычитания можно представить как сложение с отрицательным числом.
На основании этих равенств производится сложение многозначных двоичных чисел. Рассмотрим следующий пример: Сложение начинают с разряда единиц (1) 2 + (1) 2 = (10) 2. Ноль записывают под чертой, а единицу переносят в следующий разряд разряд двоек (надписывают сверху). Переходят к разряду двоек: (1) 2 + (0) 2 + (1) 2 = (10) 2. Ноль записывают, а единицу переносят в разряд четверок. Переходят к разряду четверок: (1 ) 2 + (1) 2 + (0) 2 = (10) 2. Ноль записывают, а единицу переносят в разряд восьмерок. Так, переходя от разряда к разряду (справа налево), постепенно получают все цифры суммы. Сложение
Вычитание Вычитание двоичных чисел производится так же, как и десятичных, т. е. последовательно по разрядам от младшего к старшему. Если из меньшей цифры в данном разряде вычитается большая, то производится заем единицы из следующего старшего разряда, т.е. цифра этого старшего разряда становится на единицу меньше. В вычислительной технике при использовании двоичной системы счисления крайний левый разряд служит для записи знака числа. Для положительного числа в этот разряд записывается 0, а для отрицательного 1. Записанные таким образом двоичные числа будем называть записанными в прямом коде. Рассмотрим составление дополнительного кода к прямому коду отрицательного числа. Дополнительный код отрицательных двоичных чисел формируется по следующему правилу. Сначала цифры всех разрядов, кроме знакового, инвертируют (вместо 0 записывают 1, а вместо 1 0) и в младший разряд добавляют единицу. Если в младшем разряде уже стоит единица, то при этом приходится изменять цифру в следующем, а, возможно, и в более старших разрядах.
Арифметические операции над двоичными числами Пример 1.1 Сложить два числа А 10 = 6; В 10 = 16. А 2 = +110 = +0110; В 2 = Исходные числа имеют различную разрядность, необходимо провести выравнивание разрядной сетки: Сложение в обратном или дополнительном коде дает один и тот же результат С:
Арифметические операции над двоичными числами Умножение. Умножение двоичных чисел наиболее просто реализуется в прямом коде. Рассмотрим, каким образом оно приводится к операциям сложения и сдвигам. Пример 1.2 Умножить два числа A 10 = 6; В 10 = 5. Перемножим эти числа, представленные прямыми двоичными кодами, так же, как это делается в десятичной системе. С = 30 Нетрудно видеть, что произведение получается путем сложения частных произведений, представляющих собой разряды множимого, сдвинутые влево в соответствии с позициями разрядов множителя. Частные произведения, полученные умножением на нуль, игнорируются.
Арифметические операции над двоичными числами Деление. Операция деления, как и в десятичной арифметике, является обратной операции умножения. Покажем, что и эта операция приводится к последовательности операций сложения и сдвига. Пример 1.3 Разделить два числа А 10 = 40; В 10 = 5. Деление произведено так же, как это делается обычно в десятичной системе. Сначала проверяется, можно ли вычесть значение делителя из старших разрядов делимого. Если возможно, то в разряде частного записывается единица и определяется частная разница. В противном случае в частное записывается нуль и разряды делителя сдвигаются вправо на один разряд по отношению к разрядам делимого. К полученной предыдущей разнице сносится очередная цифра делимого, и данный процесс повторяется, пока не будет получена необходимая точность. Если учесть, что все вычитания в ЭВМ заменяются сложением в обратном или в дополнительном коде, то действительно операция деления приводится к операциям сложения и сдвигам вправо разрядов делителя относительно разрядов делимого.