Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по инфе.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
469 Кб
Скачать
☆

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

Прямой код — способ представления двоичных чисел с фиксированной запятой (см. таблицу и п. 55).

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

Обратный n-разрядный двоичный код положительного целого числа состоит из одноразрядного кода знака (двоичной цифры 0), за которым следует (n−1)-разрядное двоичное представление модуля числа (обратный код положительного числа совпадает с прямым кодом).

Пример. Двоичное представление числа 5 есть 101. 10-разрядный двоичный код числа +5 записывается как 00 0000 0101.

Обратный n-разрядный двоичный код отрицательного целого числа состоит из одноразрядного кода знака (двоичной цифры 1), за которым следует (n−1)-разрядное двоичное число, представляющее собой инвертированное (n−1)-разрядное представление модуля числа. Следует отметить, что для изменения знака числа достаточно проинвертировать все его разряды, не обращая внимания, знаковый ли это разряд или информационный.

Пример. Двоичное представление числа 5 есть 101, его 10-разрядное двоичное представление — 00 0000 0101. Обратный 10-разрядный двоичный код числа -5 есть 11 1111 1010.

Для преобразования отрицательного числа в положительное тоже применяется операция инвертирования. Этим обратные коды удобны в применении. В качестве недостатка следует отметить, что в обратных двоичных кодах имеются два кода числа 0: «положительный нуль» 00 0000 0000 и «отрицательный нуль» 11 1111 1111 (приведены 10-и разрядные обратные коды). Это приводит к некоторому усложнению операции суммирования. Поэтому в дальнейшем перешли к дополнительным кодам записи знаковых целых чисел.

Дополнительный код — наиболее распространённый способ представления отрицательных целых чисел в компьютерах. Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ.

При записи числа в дополнительном коде старший разряд является знаковым. Если его значение равно 0, то в остальных разрядах записано положительное двоичное число, совпадающее с прямым кодом. Двоичное 8-разрядное число со знаком в дополнительном коде может представлять любое целое в диапазоне от −128 до +127. Если старший разряд равен нулю, то наибольшее целое число, которое может быть записано в оставшихся 7 разрядах, равно . А если отрицательное (старший бит = 1), просто отнимаем единицу.

Примеры:

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

Двоичное представление (8 бит)

прямой

обратный

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

127       

0111 1111       

0111 1111       

0111 1111       

1       

0000 0001       

0000 0001       

0000 0001       

0       

0000 0000       

0000 0000       

0000 0000       

-0       

1000 0000       

1111 1111       

---       

-1       

1000 0001       

1111 1110       

1111 1111       

-2       

1000 0010       

1111 1101       

1111 1110       

-3       

1000 0011       

1111 1100       

1111 1101       

-4       

1000 0100       

1111 1011       

1111 1100       

-5       

1000 0101       

1111 1010       

1111 1011       

-6       

1000 0110       

1111 1001       

1111 1010       

-7       

1000 0111       

1111 1000       

1111 1001       

-8       

1000 1000       

1111 0111       

1111 1000       

-127       

1111 1111       

1000 0000       

1000 0001       

-128       

---       

---       

1000 0000