Составители:
Рубрика:
(X+Y)
доп
=1,1110101 → (X+Y)
пр
=1,0001010+0,0000001=1,0001011.
Таким образом X+Y= –1011 и полученный результат совпадает с обычной
записью.
2.3 Модифицированные обратный и дополнительный коды.
При переполнении разрядной сетки, происходит перенос единицы в
знаковый разряд. В этом случае положительное число, получившееся в
результате арифметической операции может восприниматься как
отрицательное, так как в знаковом разряде “1”.
Здесь X и Y – коды положительных чисел, но ЭВМ воспринимает
результат их сложения как код отрицательного числа (“1” в знаковом
разряде). Для обнаружения переполнения
разрядной сетки вводятся
модифицированные коды.
Модифицированный обратный код – в нем под знак числа
отводится не один, а два разряда. Форма записи чисел в модифицированном
обратном коде выглядит следующим образом:
1) для положительного числа
X=
XXX ... X
123 n
; X
oб
p
м
= 00, X X X ... X
123 n
;
2) для отрицательного числа
X=
XXX ... X
123 n
; X
oб
p
м
=11, X X X ... X
123 n
;
(обозначение
X читается “не X”, т.е. , если X=0, то X =1 и наоборот, если
X=1, то
X =0).
Любая другая комбинация (“01” или “10”), получившаяся в
знаковых разрядах служит
признаком переполнения разрядной сетки.
Сложение чисел в модифицированном обратном коде ничем не отличается
от сложения в обычном обратном коде.
Рассмотрим предыдущий пример, выполнив сложение в
модифицированном обратном коде:
В ЭВМ в процессе работы оба знаковых разряда сравниваются. В
случае появления признака переполнения машина останавливается.
Модифицированный дополнительный код также рассматривает
два знаковых разряда, а во всем остальном ничем не отличается от обычного
дополнительного кода, то есть:
1) для положительного числа
X=
XXX ... X
123 n
; X
доп
м
= 00, X X X . .. X
123 n
;
2) для отрицательного числа
X=
XXX ... X
123 n
; X
до п
м
=11, X X X ... X
123 n
+0,000 . . . 1;
Пример. Даны два числа: X=101001 и Y= –11010. Сложить их в
дополнительном и модифицированном дополнительном кодах.
1) Переведем X и Y в дополнительный и модифицированный
дополнительный код:
2) Выполним сложение:
Переполнения нет (в знаковых разрядах “00”), поэтому результаты,
полученные в обычном и модифицированном кодах совпадают (X+Y=1111).
Упражнения 2.
Например: X=0,1010110
Y=0,1101000
X+Y=1,0111110
X=00,101011
Y=00,110100
X+Y=01,011111
Обычная запись Обратный код Дополнительный код
X=+0101001
Y=–0011010
X
обр
=0,0101001
Y
об
р
=1,1100101
X
доп
=0,0101001
Y
д
оп
=1,1100110
Обычная запись Мод. обратный код Мод. дополнительный код
X=+101001
Y=–011010
X
об р
м
=00,101001
Y
об р
м
=11,100101
X
до п
м
=00,101001
Y
до п
м
=11,100110
X
доп
= 0,0101001
Y
доп
= 1,1100110
1)0,0001111
отбрасывается
(X+Y)
доп
= 0,0001111
X
до п
м
= 00,101001
Y
до п
м
= 11,100110
1) 00,001111
отбрасывается
(X+Y)
до п
м
= 00,001111
(X+Y)доп=1,1110101 → (X+Y)пр=1,0001010+0,0000001=1,0001011. Модифицированный дополнительный код также рассматривает Таким образом X+Y= –1011 и полученный результат совпадает с обычной два знаковых разряда, а во всем остальном ничем не отличается от обычного записью. дополнительного кода, то есть: 1) для положительного числа 2.3 Модифицированные обратный и дополнительный коды. X= X 1 X 2 X 3 ... X n ; X дмо п= 00, X 1 X 2 X 3 . .. X n ; 2) для отрицательного числа При переполнении разрядной сетки, происходит перенос единицы в X= X 1 X 2 X 3 ... X n ; X дмо п= 11, X 1 X 2 X 3 . . . X n +0,000 . . . 1; знаковый разряд. В этом случае положительное число, получившееся в результате арифметической операции может восприниматься как отрицательное, так как в знаковом разряде “1”. Пример. Даны два числа: X=101001 и Y= –11010. Сложить их в Например: X=0,1010110 дополнительном и модифицированном дополнительном кодах. Y=0,1101000 1) Переведем X и Y в дополнительный и модифицированный X+Y=1,0111110 дополнительный код: Здесь X и Y – коды положительных чисел, но ЭВМ воспринимает Обычная запись Обратный код Дополнительный код результат их сложения как код отрицательного числа (“1” в знаковом X=+0101001 Xобр=0,0101001 Xдоп=0,0101001 разряде). Для обнаружения переполнения разрядной сетки вводятся Y=–0011010 Yобр=1,1100101 Yдоп=1,1100110 модифицированные коды. Модифицированный обратный код – в нем под знак числа Обычная запись Мод. обратный код Мод. дополнительный код отводится не один, а два разряда. Форма записи чисел в модифицированном X=+101001 X ом б р =00,101001 X мд о п=00,101001 обратном коде выглядит следующим образом: Y=–011010 Yомб р =11,100101 Yдмо п =11,100110 1) для положительного числа м X= X 1 X 2 X 3 ... X n ; X oб p= 00, X 1 X 2 X 3 .. . X n ; 2) Выполним сложение: 2) для отрицательного числа м Xдоп= 0,0101001 X мд о п = 00,101001 X= X 1 X 2 X 3 ... X n ; X oб p= 11, X 1 X 2 X 3 . .. X n ; Yдоп= 1,1100110 1)0,0001111 Y мд о п = 11,100110 (обозначение X читается “не X”, т.е. , если X=0, то X =1 и наоборот, если 1) 00,001111 X=1, то X =0). отбрасывается отбрасывается Любая другая комбинация (“01” или “10”), получившаяся в (X+Y)доп= 0,0001111 (X+Y) м знаковых разрядах служит признаком переполнения разрядной сетки. д о п= 00,001111 Сложение чисел в модифицированном обратном коде ничем не отличается от сложения в обычном обратном коде. Переполнения нет (в знаковых разрядах “00”), поэтому результаты, Рассмотрим предыдущий пример, выполнив сложение в полученные в обычном и модифицированном кодах совпадают (X+Y=1111). модифицированном обратном коде: X=00,101011 Y=00,110100 X+Y=01,011111 Упражнения 2. В ЭВМ в процессе работы оба знаковых разряда сравниваются. В случае появления признака переполнения машина останавливается.
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »