Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Прямой, обратный и дополнительный коды чисел





 

В ЭВМ используется прямой, обратный и дополнительный коды чисел. Знак “+” кодируется нулем (0), “-” - единицей (1), которые записываются в дополнительном старшем разряде - знаковом разряде.

Возьмем целое число С = + Cn Cn-1 Cn-2...C1 C0.

1. Прямой код для целых чисел определяется:

 

Cпр= │C│ при C > 0,

Pn+1 +│C│ при C < 0.

 

Для отрицательных двоичных чисел имеем:

C = 2 +ê-Cn Cn-1...C0 ê= 1.Cn Cn-1...C0,

где точкой отделен знаковый разряд.

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

C = +10110, Cпр = 0.10110; C = -10110, Cпр = 1.10110.

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

2. Обратный код определяется:

Cобр= │C│ при C > 0,

Pn+2-P0-│C│ при C < 0.

Для отрицательных двоичных чисел имеем:

Cобр = 2n+2 - 1 -½-Cn Cn-1 …C0½ = 11…1 – 0.Cn Cn-1…C0= 1. n n-1 0,

где I = 1 при Ci = 0 и I = 0 при Ci = 1.

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

C = +10110, Cобр = 0.10110; С = -10110, Собр = 1.01001.

3. Дополнительный код чисел определяется:

Cдоп = │C│ при C > 0,

Pn+2 -│C│ при C < 0.

 

При представлении двоичного отрицательного числа в дополнительном коде в знаковый разряд надо записать 1, а цифровую часть заменить дополнением числа до 2n+1 .

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

Cдоп = Собр +1, при С < 0.

C = +10110, Cдоп = 0.10110; С = -10110, Сдоп = 1.01010.

 

Как можно увидеть, при вычислениях в ЭВМ в прямом и обратном коде может получиться как положительный, так и отрицательный нуль (+0, -0).

(+0)пр=0,00…0, (-0)пр=1,00..0;

(+0)обр=0,00…0, (-0)обр=1,11…1.

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

(+0)доп = 0,00…0, (-0)доп = 1,11…1+2-m = 0.

 

Нетрудно доказать, что (по модулю):

· Обратный код от обратного кода дает прямой код числа.

· Дополнительный код от дополнительного кода дает прямой код числа.







Date: 2016-07-22; view: 395; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию