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

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


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

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

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

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

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

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

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

C = +10110, Cпр = 0.10110;

C = -10110,

Cпр = 1.10110.

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

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

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

Cобр = 2n+2 - 1 -c-Cn Cn-1 …C0c = 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.

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

При представлении двоичного отрицательного числа в дополнительном коде в знаковый разряд нужно записать 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.

Несложно обосновать, что (по модулю):




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


Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Похожый реферат

Cпециально для Вас подготовлен образовательный документ: Прямой, обратный и дополнительный коды чисел