Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ1ИНФ.doc
Скачиваний:
2
Добавлен:
17.07.2019
Размер:
315.9 Кб
Скачать

1.2.1 Представление чисел в прямом коде

Простейшим форматом, использующим знаковый разряд, является прямой код ( в английской транскрипции этот формат принято называть sign-magnitude representation – представление в виде абсолютной величины со знаком.

В n - разрядном двоичном слове в общем случае n-1 разрядов представляют абсолютную величину числа.

Пример 5.

(+18)10 - 000100102

(-18)10 - 100100102

Формат представления чисел в прямом коде неудобен для использования в вычислениях. Во-первых сложение и вычитание положительных и отрицательных чисел выполняется по-разному, а поэтому требуется анализировать знаковые разряды всех используемых операндов. Во-вторых, в прямом коде числу 0 соответствуют две различные кодовые комбинации:

(+0)10 - 00000000

(-0)10 - 10000000.

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

В связи с этим при реализации в арифметическом и логическом устройстве (АЛУ) арифметических операций над целыми числами практически применяется дополнительный код.

1.2.2 Представление чисел в дополнительном коде

Как и в прямом, в дополнительном коде старший разряд в разрядной сетке (регистре)отводится для представления знака числа (0 число положительное , 1 – число отрицательное). Остальные же разряды интерпретируются совершенно по другому.

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

Обратный код образуется по следующему правилу:

- обратный код положительного числа совпадает с его прямым кодом.

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

Пример 6.

A10 = +5 ; A2 = +101; [A2]ОК = [A2]ПК = 0:101;

B10 = -14 ; A2 = -1110; [A2]ОК = 1:0001.

В примере 6 знаковый разряд от значащих отделен символом «:».

Обратный код обладает следующими свойствами:

- сложение положительного числа С с его отрицательным значением в обратном коде дает, так называемую, машинную единицу МЕок (1:11...1).

Пример 7.

A10 = +5 ; A2 = +101; [A2]ОК = [A2]ПК = 0:101;

A10 = -5 ; A2 = -101; [A2]ОК = 1:010;

0:101

1:010

1 :111 ;

- нуль в обратном коде имеет двоякое значение. Он может принимать как положительное значение 0:00...0, так и отрицательное – 1;11...1, причем значение отрицательного нуля совпадает со значением машинной единицы.

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

Дополнительный код образуется по следующему правилу:

- дополнительный код положительного числа совпадает с прямым (и обратным) кодом;

- дополнительный код отрицательного числа представляет собой результат суммирования обратного кода числа с числом 00...1 (20 – для целых чисел или 2-k –для дробных).

Пример 8.

A10 = +19; A2 = +10011; [A2]ОК = [A2]ПК = 0:10011;

B10 =-14; A2=-1110; [A2]ДК = [A2]ОК + 20 = 1:0001 + 0:0001=1:0010.

Дополнительный код обладает следующими свойствами:

- сложение положительного числа С в дополнительном коде с его отрицательным значением дает машинную единицу дополнительного кода

МЕДК = МЕОК + 20 = 10:00...00,

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

- представление отрицательных чисел в дополнительном коде по сути является дополнением прямого кода числа до машинной единицы МЕДК.

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

Пример 9.

A10 = + 9; A2 = + 1001; [A2]ПК = [A2]ОК = [A2]ДК = 0:1001

[A2]МДК = [A2]МОК = 00:1001

В10 =-9; В2 =-1001; [В2]ПК =1:1001;

[B2]ОК=1:0110;[В2]ДК = + [B2]ОК + 0001 = 1:0111

2]МOК = 11:0110; [A2]МДК = 11:0111.

Цель введения модифицированного дополнительного кода – обнаружение случаев получения неправильного результата, когда его значение превышает возможности разрядной сетки. В этом случае в немодифицированных кодах перенос из старшего значащего разряда может исказить значение знакового разряда (превратить число из положительного в отрицательное и наоборот).

При использовании же модифицированных кодов значение знаковых разрядов «01» свидетельствует о положительном, а значение «10» об отрицательном переполнении разрядной сетки и позволяет обнаружить ошибки вычислений.

Другой путь решения этой задачи (обнаружение переполнения разрядной сетки) - фиксация переносов из старшего значащего разряда в специальном разряде особого регистра (регистра «флагов»).

Представление 4-разрядных целых положительных и отрицательных чисел в прямом и дополнительном коде показано в табл.1.

Таблица 1 – Представление чисел в прямом и дополнительном кодах

Десятичное представление

Прямой код

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

Смещенное представление

+7

0:111

0:111

1111

+6

0:110

0:110

1110

+5

0:101

0:101

1101

+4

0:100

0:100

1100

+3

0:011

0:011

1011

+2

0:010

0:010

1010

+1

0:001

0:001

1001

+0

0:000

0:000

1000

-0

1:000

-

0111

-1

1:001

1:111

0110

-2

1:010

1:110

0101

-3

1:011

1:101

0100

-4

1:100

1:100

0011

-5

1:101

1:011

0010

-6

1:110

1:010

0001

-7

1:111

1:001

0000

-8

-

1:000

-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]