- •Лекция 11 окс Представление двоичных чисел в прямом, обратном и дополнительном кодах
- •Алгебраическое сложение
- •6. А и в отрицательные, сумма абсолютных величин а и в больше, либо равна 2n-1. Вариант переполнения.
- •2. А положительное, b отрицательное и по абсолютной величине больше, чем а.
- •3. А положительное, b отрицательное и по абсолютной величине меньше, чем а.
- •Двоично-десятичные коды
- •Двоично-десятичный код 8421 с избытком 3
6. А и в отрицательные, сумма абсолютных величин а и в больше, либо равна 2n-1. Вариант переполнения.
Например:
Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки.
Сложение дополнительных кодов. Здесь также имеют место рассмотренные выше шесть случаев:
1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.
2. А положительное, b отрицательное и по абсолютной величине больше, чем а.
Например:
Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = -710.
3. А положительное, b отрицательное и по абсолютной величине меньше, чем а.
Например:
Получен правильный результат. Единицу переноса из знакового разряда компьютер отбрасывает.
4. А и В отрицательные. Например:
Получен правильный результат в дополнительном коде. Единицу переноса из знакового разряда компьютер отбрасывает.
Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.
Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:
на преобразование отрицательного числа в обратный код компьютер затрачивает меньше времени, чем на преобразование в дополнительный код, так как последнее состоит из двух шагов — образования обратного кода и прибавления единицы к его младшему разряду;
время выполнения сложения для дополнительных кодов чисел меньше, чем для их обратных кодов, потому что в таком сложении нет переноса единицы из знакового разряда в младший разряд результата.
ВАЖНО: Результат всегда представляется в том виде, в котором представлены исходные операнды.
Примеры
Числа даны без знаковых разрядов.
10110101 – 10010110 выполнить алгебр. сложение в обратном коде
- 11010 – 10101 выполнить алгебр. сложение в дополнительном коде, разрядная сетка 8 бит.
- 110011 – 101101 выполнить алгебр. сложение в обратном коде, разрядная сетка 8 бит.
- 101010 + 110001 выполнить алгебр. сложение в дополнительном коде, разрядная сетка 8 бит.
Решение:
1)
Ответ: +11111
Сначала числа представляются в прямом коде в разрядной сетке, а затем происходят необходимые преобразования.
Ответ: -101111.
Ответ: -1100000.
Ответ: +0111.
Двоично-десятичные коды
Числа в кодах такого типа представляются двоичными тетрадами соответствующих десятичных цифр.
Двоично-десятичный код (2/10) – код прямого замещения; код 8421
10 код |
2/10 код |
10 код |
2/10 код |
Остальные комбинации 10 – 15 - запрещенные |
10 код |
2/10 код |
10 код |
2/10 код |
0 |
0000 |
5 |
0101 |
10 |
1010 |
15 |
1111 | |
1 |
0001 |
6 |
0110 |
11 |
1011 |
|
| |
2 |
0010 |
7 |
0111 |
12 |
1100 |
|
| |
3 |
0011 |
8 |
1000 |
13 |
1101 |
|
| |
4 |
0100 |
9 |
1001 |
15 |
1110 |
|
|
Преобразование числа в обратный код
Запись отрицательного числа в прямом коде
Добавление тетрады + 0110 во все тетрады числа из п.1 - Сложение
Инверсия полученной в п.2. суммы - Это и есть результат – число в обратном коде.
Преобразование числа в дополнительный код
Выполнить операции 1-3 из преобразования в обратный код
В младшую тетраду добавить + 0001 - Результат сложения – число в дополнительном коде.
При преобразовании в обратный или дополнительный код результат не корректируется.
Преобразование в прямой код из обратного или дополнительного кода происходит аналогично.
Например: -5689; - 1542; – в обр.код -9948; - 1237 – в доп.код
5689
-1542
-3567
-1237
Правила выполнения арифметических операций
Коррекция результата потетрадного сложения путем добавления поправки + 0110 требуется в случае, если :
Был перенос в старшую тетраду
Возникают запрещенные комбинации
При коррекции разрешен межтетрадный перенос.
Например: 279 + 581 = 860
Сначала выполняется сумма, а потом, если требуется – коррекция
пример, где требуется коррекция при возникновении переноса и запрещенных комбинаций одновременно.
689+579=1268
Примеры:
934 – 1239 выполнить алгебр. сложение в обратном коде
- 568- 329 выполнить алгебр. сложение в обратном коде
4529 – 8966 выполнить алгебр. сложение в дополнительном коде
- 9588 – 29 выполнить алгебр. сложение в дополнительном коде
Решение: