- Обратный код
-
Обратный код — метод вычислительной математики, позволяющий вычесть одно число из другого, используя только операцию сложения над натуральными числами. Ранее метод использовался в механических калькуляторах (арифмометрах). В настоящее время используется в основном в современных компьютерах.
Содержание
Описание
Обратный -разрядный двоичный код положительного целого числа состоит из одноразрядного кода знака (двоичной цифры 0), за которым следует -разрядное двоичное представление модуля числа (обратный код положительного числа совпадает с прямым кодом).
Пример. Двоичное представление числа 5 есть 101. Обратный 10-разрядный двоичный код числа +5 записывается как 0000000101.
Обратный -разрядный двоичный код отрицательного целого числа состоит из одноразрядного кода знака (двоичной цифры 1), за которым следует -разрядное двоичное число, представляющее собой инвертированное -разрядное представление модуля числа. Следует отметить, что для изменения знака числа достаточно проинвертировать все его разряды не обращая внимания знаковый ли это разряд или информационные.
Пример. Двоичное представление числа 5 есть 101, его 10-разрядное двоичное представление — 0000000101. Обратный 10-разрядный двоичный код числа −5 есть 1111111010.
Для преобразования отрицательного числа в положительное тоже применяется операция инвертирования. Этим обратные коды удобны в применении. В качестве недостатка следует отметить, что в обратных двоичных кодах имеются два кода числа 0: «положительный нуль» 0000000000 и «отрицательный нуль» 1111111111 (приведены 10-разрядные обратные коды). Это приводит к некоторому усложнению операции суммирования. Поэтому в дальнейшем перешли к дополнительным кодам записи знаковых целых чисел.
-разрядный обратный код позволяет представить числа от до .
Двоичный пример
Метод дополнений в основном используется в двоичной системе счисления (с основанием 210).В двоичной системе счисления дополнение до 1 очень просто получается инверсией каждого бита (заменой '0' на '1' и наоборот). Дополнение до 2 может быть сделано симуляцией единицы переноса в младший значащий бит.[1] Например:
вычитание 10010 — 2210011001002 (x, равное десятичным 10010) - 000101102 (y, равное десятичным 2210)
в методе дополнений становится суммой:
011001002 (x) + 111010012 (первое дополнение y) + 12 (чтобы получить второе дополнение) ========== 1010011102
После отброса левой (старшей, начальной) «1» получается ответ: 010011102 (равное десятичным 7810).
См. также
Литература
- Самофалов К.Г., Романкевич А.М., Валуйский В.Н., Каневский Ю.С., Пиневич М.М. Прикладная теория цифровых автоматов. — К.: Вища школа, 1987. — 375 с.
- Сединин В.И., Микушин А.В., Сажнев А.М. Цифровые устройства и микропроцессоры. — С.Перербург: БХВ, 2010. — 832 с.
Ссылки
- ↑ http://matlab.exponenta.ru/fixedpoint/book1/1.php К. Г. Жуков «Справочное руководство пользователя Fixed-Point Blockset» 1.2. Понятие прямого, обратного и дополнительного кодов
Для улучшения этой статьи желательно?: - Дополнить статью (статья слишком короткая либо содержит лишь словарное определение).
- Исправить статью согласно стилистическим правилам Википедии.
- Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
Категории:- Информатика
- Системы счисления
- Компьютерная арифметика
Wikimedia Foundation. 2010.