1) сравнить знаки слагаемых;
2) сравнить слагаемые по модулю при неравенстве их знаков;
3) выполнить соответствующую арифметическую операцию: сложение при равенстве знаков и вычитание из большего по модулю слагаемого меньшего при неравенстве их знаков;
4) присвоить алгебраической сумме знак большего по модулю слагаемого.
Так как операция сложения значительно проще вычитания, то возникает вопрос: нельзя ли каким-либо образом вычитание заменить сложением? Оказывается, это возможно за счет несколько более сложного кодирования. Для этого и вводятся Дополнительный код и Обратный код.
Идея замены вычитания сложением основана на применении некоторых вспомогательных чисел, (дополнений) однозначно связанных с отрицательными исходными числами.
Число А' называется дополнением к числу А если сумма
А+А' = r в степени 0, если А - дробное.
r в степени n, если А - целое. где r - система счисления, n - разряд числа А.
Пример: Найти дополнение к десятичному числу А=254
Так как А - целое, то А+А'= r в степени n, где r=10, n=3
А' = 1000-А = 746
Как уже было замечено, дополнение позволяет заменить вычитание сложением. Это легко заметить:
А-В = А+(r в степени n - В) = А+В'-(r в степени n)
Поясним это на примере: А=357 В=164 А-В - ?
A = 357 A = 357
В = 164 В' = 836
А-В =-193 А+В' =1193
Введем определение дополнительного кода числа.
Дополнение, перед которым стоит знак – дополнительный код числа.
В зависимости от того целое или дробное число, его представление в дополнительном коде осуществляется по следующим формулам:
А - дробное:
0.|A| при А>=0
[A]доп =
r-|A| при A<0
A - целое:
|A| при А>=0
[A]доп =
(n+1)
r -|A| при А<0
Можно сформулировать следующее правило нахождения дополнительного кода: Дополнительный код положительного числа совпадает с его прямым кодом.
Для получения дополнительного кода отрицательного числа следует в знаковый разряд записать цифру равную с/с-1, а во всех других разрядах цифры заменить на взаимно обратные, после чего к младшему разряду числа добавляется единица.
Аппаратно перевод числа в дополнительный код реализуется при помощи следующей схемы:
Число 11000
00111+
1
----01000
ПРИМЕР 3:
Представить в дополнительном коде двоичные дробные числа А1 = 0.110011 и
А2 = -0.110011
Ответ: [А1]доп = 0.110011 [А2]доп = 1.001100+0.000001 = 1.001101
ПРИМЕР 4: Представить в обратном коде двоичные целые числа А1 = 110011 и
А2 = -110011, используя 8-разрядную сетку.
Ответ: [А1]доп = 00110011 [А2]доп = 11001101
Покажем на примере как с помощью доп. кода происходит вычитание:
А = 0.0101 В = -0.0010
[А]доп = 0.0101
[A]доп = 1.1110
10.0011
Нужно отметить что старшая единица не попадает в разрядную сетку и отбрасывается.
Покажем, как аппаратно реализуется сложение/вычитание чисел в дополнительных кодах: Числа A и B возьмем из предыдущего примера. Числа хранятся в регистрах в дополнительном коде.
[A]доп =0.0101
[B]доп =1.1110
0.0011
Переход от дополнительного кода отрицательного числа к его прямому коду никаких трудностей не вызывает: нужно из исходного кода вычесть единицу младшего разряда, после чего во всех разрядах, за исключением знакового, заменить цифры на взаимно обратные. Однако практически производить такой переход легче по другому правилу: вначале заменить все цифры, за исключением знаковой, на взаимно обратные, после чего добавить единицу к знаковому разряду.
При замене операции вычитания сложением, помимо дополнения, можно использовать и другое вспомогательное число - инверсию отрицательного операнда, возникающую в результате замены его цифр взаимно обратными. Поскольку инверсия меньше дополнения на единицу младшего разряда, то для получения правильной разности необходимо производить соответствующую коррекцию суммы вспомогательных чисел (обычно это делается с помощью так называемого циклического переноса единицы переполнения из знаковых разрядов суммы).
Таким образом, обратным кодом отрицательного числа будем называть число получаемое по следующему правилу:
в знаковом разряде проставляется цифра равная с/с-1, а во всех остальных разрядах цифры заменяются на взаимно обратные.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.