Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Итоговый УМП1_оконч070206.doc
Скачиваний:
17
Добавлен:
23.11.2019
Размер:
8.8 Mб
Скачать

Машинные коды чисел

Различают прямой код (ПК), обратный код (ОК) и дополнительный код (ДК) двоичных чисел.

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

Пример 1.13.

A10 = +10 A2 = +1010 [A2]пк = 0.1010;

В10 = -13 В2 = - 1101 [В2]пк = 1.1101;

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

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

Пример 1.14.

A10 = +10 A2 = +1010 [A2]пк = 0.1010 [A2]ок = 0.1010;

В10 = -13 В2 = - 1101 [В2]пк = 1.1101 [В2]ок = 1.0010;

Укажем наиболее важные свой­ства обратного кода чисел:

• сложение положительного числа С с его отрицательным значением в обратном коде дает так называемую машинную единицу МЕок = 1.111... 11, состоящую из единиц в знаковом и значащих разря­дах числа;

• нуль в обратном коде имеет двоякое значение. Он может быть поло­жительным – 0.00...0 и отрицательным числом – 1.11... 11. Значение отрицательного нуля совпадает с МЕок. Двойственное представление нуля явилось причиной того, что в современных ЭВМ все числа пред­ставляются не обратным, а дополнительным кодом.

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

Пример 1.15.

A10 = +10 A2 = +1010 [A2]пк = 0.1010 [A2]ок = 0.1010 [A2]дк = 0.1010;

В10 = -13 В2 = - 1101 [В2]пк = 1.1101 [В2]ок = 1.0010 [В2]дк = 1.0011;

Укажем основные свойства дополнительного кода:

• сложение дополнительных кодов положительного числа А с его отри­цательным значением дает так называемую машинную единицу до­полнительного кода:

Медк = МЕок+20 =10.00...00,

т.е. число 10 (два) в знаковых разрядах числа;

• дополнительный код получил такое свое название потому, что пред­ставление отрицательных чисел является дополнением прямого кода чисел до машинной единицы МЕдк.

Модифицированные обратные и дополнительные коды двоичных чисел отличаются соответственно от обратных и дополнительных кодов уд­воением количества знаковых разрядов. Знак «+» в этих кодах кодируется дву­мя нулевыми знаковыми разрядами, а «-» - двумя единичными разрядами.

Пример 1.16.

A10 = 9 A2 = +1001 [A2]пк = [A2]ок = [A2]дк = 0.1001;

[A2]мок = [A2]мдк = 00.1001

В10 = -9 В2 = - 1001 [В2]ок = 1.0110 [В2]дк = 1.0111

[B2]мок = 11.0110 [B2]мдк = 11.0111.

Целью введения модифицированных кодов являются фиксация и обнару­жение случаев переполнения разрядной сетки ЭВМ т.е. получения неправильного результата, когда значение резуль­тата превышает максимально возможный результат в отведенной разрядной сетке машины. В этом случае перенос из значащего разряда может исказить значение младшего знакового разряда. Значение знаковых разрядов «01» сви­детельствует о положительном переполнении разрядной сетки, а «10» - об отрицательном переполнении. В настоящее время практически во всех мо­делях ЭВМ роль удвоенных разрядов для фиксации переполнения разрядной сетки играют переносы, идущие в знаковый и из знакового разряда.