Обратный код
Оценка 4.8

Обратный код

Оценка 4.8
docx
18.11.2021
Обратный код
Л2-002056.docx

Обратный код

Обратный код предполагает, что при кодировании числа и выполне- нии операций с кодами используются одинаковые правила обработки всех разрядов, включая знаковый. Обратный n-разрядный двоичный код

  это код образованный по правилу:

А2                 при А2 >0


2)обр =


(2n-1) - |A2| при А2<0


Операция вида (2n – 1) - |A2| дает дополнение до наибольшего числа без знака, представимого в в n-разрядной сетке. Другими словами, кодиро- вание числа можно выполнить следующим образом:

·         Для положительного числа в n-разрядную сетку записывается его двоичное представление.

·         Для отрицательного числа в n-разрядную сетку записывается раз- ность между наибольшим числом без знака и модулем кодируемого числа.

В обоих случаях значение знакового разряда будет получено автомати- чески.

Пример: Получить обратные коды чисел А[10] = 4, В[10] = -6 для n = 5.

Кодируем отрицательное число

1. [10]| = 6

2. [2]| = 00110

3. [2])обр= 1 1 1 1 1             Это инверсия модуля

- 0 0 1 1 0

1 1 0 0 1        32

[2])обр=             Знак ® 1


Кодируем положительное число

1. A[10] = 4

0	0	1	0	02. A[2] = 00100

3. [2])обр=

Знак ® 0

1	1	0	0	1

 

Замечания:

v  Операция дополнения для двоичного обратного кода эквивалентна инверсии всех разрядов. Инверсия удобна для реализации в операци- онном устройстве.

v  Если длина разрядной сетки кратна 4, дополнение удобно вычислять в шестнадцатеричной системе счисления. Такая разрядная сетка ха- рактерна для большинства ЭВМ.

v  Если длина разрядной сетки кратна 3, дополнение удобно вычислять в восьмеричной системе счисления. Такая разрядная сетка не харак- терна для ЭВМ. Однако для мини-ЭВМ с 16-ти разрядной сеткой при документировании программ часто пользуются восьмеричной записью кодов чисел, при этом старший разряд рассматривается как двоичная цифра.

 

Пример: Определить обратный код числа А[10] = -21 при n=16.

Получим обратный код во всех трех указанных формах. Так как кодируется отрицатель- ное число, необходимо вычислить дополнение и использовать его в качестве обратного кода.

v  Двоичное кодирование. 1. [10]| = 21

2. [2]| = 10101

3. [2]|    =   0000 0000 0001 0101        (Это модуль кодируемого числа в разрядной сет- ке)

4. [2])обр= 1111 1111 1110 1010

F        F        E      A[16]

v  Шестнадцатеричное кодирование

1.    | А[10]| = 21

[16]| = 15

2. [16])обр =      F F F F                         (Это максимальное число без знака)

- 0 0 1 5                          (Это модуль кодируемого числа в разрядной сетке) F F E A

v  Восьмеричное кодирование

1.    | А[10]| = 21

[8]| = 25

2.   (А[8])обр =       1 7 7 7 7 7                     (Это максимальное число без знака)

- 0 0 0 0 2 5                    (Это модуль кодируемого числа в разрядной сетке)

1 7 7 7 5 2

 

Диапазон чисел в обратном коде составляет: A+max = 2n-1 1;    A-min

= -(2n-1-1)

Достоинства:

1     Сложение и вычитание можно выполнять на одном устройстве: сумма- торе, поскольку вычитание может быть заменено сложением с допол- нением вычитаемого:


(С)обр = (А)обр + (В)обр

(С)обр = (А)обр - (В)обр = (А)обр + ((В)обр)обр

2     Знаковый разряд обрабатывается по общим правилам. Его значение при выполнении операции устанавливается автоматически.

Недостатки:

0	0	0	0	0
1	1	1	1	1

Неоднозначность кодировки нуля:

+0                               при n=5

-0                                при n=5

Чаще всего в ЭВМ используется модификация обратного кода дополни- тельный код.


 

Обратный код Обратный код предполагает, что при кодировании числа и выполне- нии операций с кодами используются одинаковые правила обработки всех разрядов, включая знаковый

Обратный код Обратный код предполагает, что при кодировании числа и выполне- нии операций с кодами используются одинаковые правила обработки всех разрядов, включая знаковый

Кодируем положительное число 1

Кодируем положительное число 1

С)обр = (А)обр + (В)обр (С)обр = (А)обр - (В)обр = (А)обр + ((В)обр)обр 1

С)обр = (А)обр + (В)обр (С)обр = (А)обр - (В)обр = (А)обр + ((В)обр)обр 1
Скачать файл