При алгебраическом суммировании двух чисел, помещающихся в разрядную сетку, может возникнуть переполнение, то есть образуется сумма, требующая для своего представления на один двоичный разряд больше, чем разрядная сетка слагаемых. Предполагается, что положительные числа представляются в прямом коде, а отрицательные в дополнительном.
Признаком переполнения является наличие переноса в знаковый разряд суммы при отсутствии переноса из знакового разряда (положительное переполнение) или наличие переноса из знакового разряда суммы при отсутствии переноса в знаковый разряд (отрицательное переполнение).
Алгебраическое суммирование с двумя переносами.
-3-1=-4 |
|
|
101(2) |
|
|
||||
|
111(2) |
ПК 101(2) |
|
|
|
||||
-3(10) |
ДК |
+ |
|
|
|
|
|||
|
101(2) |
ПК 111(2) |
|
|
111(2) |
|
|
||
-1(10) |
ДК |
1 100(2) |
ДК=-4(10) |
||||||
|
|
|
|
||||||
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
перенос |
|
|||
Имеются переносы в знаковый разряд и из знакового разряда вычисляемой суммы, поэтому переполнения нет.
Результат - отрицательное число в ДК, равное - 4.
Алгебраическое суммирование с одним переносом. (Положительное переполнение).
2+2=4 |
|
010(2) |
|
|
||||
|
010(2) |
|
|
|
||||
2(10) |
ПК |
+ |
|
|
|
|
||
|
010(2) |
|
|
010(2) |
|
|
||
2(10) |
ПК |
0 100(2) |
ДК = ?(10) |
|||||
|
|
|
||||||
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
|
|
|
перенос |
|
||||
14
При суммировании есть перенос в знаковый разряд суммы, а перенос из знакового разряда отсутствует. Т.е. имеет место положительное переполнение и результат операции положительный.
Число 4 нельзя представить в прямом коде. Формальный результат равен -4.
Алгебраическое суммирование с одним переносом. (Отрицательное переполнение).
-3-2=-5 |
|
|
101(2) |
|
|||
|
111(2) |
ПК 101(2) |
|
|
|||
-3(10) |
ДК |
+ |
|
||||
|
010(2) |
ПК 110(2) |
|
110(2) |
|
||
-2(10) |
ДК |
|
|
|
|||
1 011(2) |
ДК=?(10) |
||||||
|
|
|
|
||||
0перенос
Число -5 нельзя представить 3-битовой комбинацией. Формальный результат равен +3.
Деление в дополнительном коде осуществляется по тем же правилам, что и деление двоичных чисел. Но обычный метод деления “столбиком” для ЭВМ не пригоден. Для ЭВМ используются более громоздкие методы деления, которые здесь не рассматриваются. Перевод чисел из дополнительного кода в десятичную систему можно проводить по схеме, приведенной на рис. 3.
|
|
|
|
Десятичная система |
ДК |
|
ПК |
|
|
|
|
счисления |
||
|
|
|||
|
|
|
|
|
Рис. 3. Схема перевода из ДК в десятичную систему
Однако существует прямой способ перевода числа из ДК в десятичную систему без использования промежуточного перевода в ПК.
15
Рассмотрим машинное слово произвольной длины (рис. 4). При прямом способе перевода десятичное число со знаком формируется как сумма разрядов со своими весами и знаками (старший N-й разряд имеет отрицательный вес).
Номер разряда |
N-1 N-2 N-3 |
. . . |
1 |
0 |
||
|
|
|
|
|
|
|
|
Знак |
|
|
|
|
|
Вес разряда |
-2N-1 2N-2 2N-3 |
|
21 |
20 |
||
Рис. 4. Машинное слово длиной N |
|
|
||||
Проиллюстрируем перевод чисел из ДК в десятичную систему счисления примерами.
Пример:
Перевести число 1110 из ДК в десятичную систему.
1 1 1 0(2) (ДК) = -8+4+2 = -2(10)
Вес -23 22 21 20
Можно проверить правильность перевода, используя промежуточный перевод числа в ПК:
1 110 число в ДК инверсия
1001
+1
1010 число в ПК, т.е. 1010(2) = -(0+21+0) = -2(10)
16
Задание и контрольные вопросы
Используя десятичное число из таблицы ниже решить следующие задачи над числом:
перейти от числа к прямому коду и далее, к дополнительному;
выполнить операцию сложения над двумя числами, представленными дополнительным кодом;
выполнить операцию вычитания над двумя числами, представленными дополнительным кодом;
выполнить операцию деления над двумя числами, представленными дополнительным кодом.
|
|
|
|
Таблица 2 |
|
|
Задания для вариантов |
|
|
||
Варианты |
1-5 |
6-10 |
11-15 |
16-20 |
|
Число 1 |
44 |
36 |
91 |
45 |
|
Число 2 |
35 |
77 |
21 |
63 |
|
При защите результатов практического задания необходимо представить содержащий их отчет и продемонстрировать свои теоретические знания и практические навыки согласно выполненному заданию.
Контрольные вопросы
1.Понятие и особенности построения двоичного ко-
да.
2.Цели и задачи применения дополнительного кода.
3.Два алгоритма преобразования чисел из прямого кода в дополнительный код и обратно.
4.Алгоритм сложения чисел, представленных дополнительным кодом.
5.Алгоритм вычитания чисел, представленных дополнительным кодом.
6.Понятия переполнения разрядной решетки.
17
7.Алгебраическое суммирование с двумя переноса-
ми.
8. Алгебраическое суммирование с одним перено-
сом.
9.Алгоритм деления чисел, представленных дополнительным кодом.
10.Прямой способ перевода числа из ДК в десятичную систему без использования промежуточного перевода в ПК.
18