Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное_пособие_информатика_v.doc
Скачиваний:
33
Добавлен:
04.11.2018
Размер:
606.21 Кб
Скачать

3.4.2. Обратный код

Определение Обратный код двоичного числа X, представленного в n-разрядной сетке, определяется как

 X при X ≥ 0;

Xобр = 

 B-│X│ при X ≤ 0,

(10)

где B – величина наибольшего числа без знака, размещающегося в n-разрядной сетке (для дробей В =2 – 2-(n-1), а для целых чисел В = 2n-1).

Диапазон чисел, представленных обратным кодом, такой же, как для прямого кода.

Пример n =5

12 Xобр = 01100

-12 25 - 1-12 Xобр =10011

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

Пример n =5

-12 11111 - наибольшее число без знака, помещающееся в разрядную сетку;

01100 - модуль исходного числа;

10011 - дополнение модуля исходного числа;

Xобр =10011.

В связи с этим, получение обратного кода отрицательного двоичного числа сводится к инверсии n-разрядного модуля этого числа.

Правило Так как модуль чисел, представимых в n-разрядной сетке, │X│<A, то в старшем (знаковом) разряде обратного кода у положительного числа будет 0, а у отрицательного числа 1. В цифровых разрядах обратного двоичного кода представляется либо модуль числа (для положительных чисел), либо его инверсия (для отрицательных чисел).

Нуль имеет два значения.

3.4.3. Дополнительный код

Определение Дополнительный код двоичного числа X, представленного в n-разрядной сетке, определяется как

 X при X ≥ 0;

Xдоп = 

 С-│X│ при X< 0,

(11)

где С – величина, равная весу разряда, следующего за старшим разрядом используемой разрядной сетки (для дробей С=1, а для целых чисел С=2n).

Диапазон чисел, представленных дополнительным кодом, отличается от диапазона прямого или обратного кода. Для положительных и отрицательных чисел поддиапазоны различны. Для положительных чисел поддиапазон такой же, как у прямого и обратного кода, а у отрицательных чисел поддиапазон больше на единицу:

0 ≤ X ≤ 2n-1- 1 для положительных чисел;

0 ≤ │X│≤ 2n-1 для отрицательных чисел.

Пример n =5

12 Xдоп = 01100

-12 25 -12 Xдоп =10100

Из определения дополнительного кода следует, что старший (знаковый) разряд у кода положительного числа равен 0, а у кода отрицательного числа равен 1. В цифровых разрядах дополнительного двоичного кода положительного числа представляется модуль этого числа. Дополнительный код отрицательного числа удобно получать через обратный код. Если рассматривать обратный и дополнительный коды числа как двоичные числа без знаков, то для отрицательных двоичных дробей Xдоп = Xобр + 2 -(n-1) , а для отрицательных двоичных целых чисел Xдоп = Xобр + 1. Таким образом, дополнительный код отрицательного числа может быть получен из обратного кода путём прибавления 1 к младшему разряду обратного кода.

Правило Для получения дополнительного кода отрицательного числа X необходимо записать n-битный модуль этого числа, затем все биты инвертируются (заменяются на противоположные) и к полученному числу прибавляется 1. Для положительных чисел прямой, обратный и дополнительный коды совпадают.

Пример n =5

12 Xпр = 01100 Xобр = 01100 Xдоп = 01100

-12 Xпр = 11100 Xобр =10011 Xдоп = 10100

Таблица 6

Определение кода для двоичных целых чисел

Пример

n = 4; X =1; X = -1;

Правило

 X , X ≥ 0;

Xпр =

 2n-1+│X│, X ≤ 0.

Xпр = 0001

Xпр = 1001 1000

+ 001

1001

модуль в цифровых разрядах сетки;

в старший (знаковый) разряд:

0, если число положительное ;

1, если число отрицательное.

Окончание таблицы 6

Определение кода для двоичных целых чисел

Пример

n = 4; X =1; X = -1;

Правило

 X, X ≥ 0;

Xобр=

 2n-1-│X│, X ≤ 0.

Xобр = 0001 10000

Xобр = 1110 - 1

1111

- 001

1110

положительное число – код совпадает с прямым;

отрицательное число – инверсия цифровых разрядов прямого кода.

 X , X ≥ 0;

Xдоп = 

 2n -│X│, X< 0.

Xдоп = 0001

Xдоп = 1111

10000

- 0001

1111

положительное число – код совпадает с прямым;

отрицательное число – инверсия цифровых разрядов прямого кода + 1 в младший разряд.