Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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; Нарушение авторских прав |