Обратный код (англ. ones' complement) — метод вычислительной математики, позволяющий вычесть одно число из другого, используя только операцию сложения над натуральными числами. Ранее метод использовался в механических калькуляторах (арифмометрах). В настоящее время используется в основном в современных компьютерах.
Обратный 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-разрядные обратные коды). Это приводит к некоторому усложнению операции суммирования. Поэтому в дальнейшем перешли к дополнительным кодам записи знаковых целых чисел.
n-разрядный обратный код позволяет представить числа от −2n−1 + 1 до +2n−1 − 1.
Метод дополнений в основном используется в двоичной системе счисления (с основанием 210). В двоичной системе счисления дополнение до единицы (обратный код) очень просто получается инверсией каждого бита (заменой «0» на «1» и наоборот). Дополнение до двух (дополнительный код) может быть получено из дополнения до единицы (обратного кода) добавлением единицы в младший значащий разряд (бит).[1] Например, вычитание 10010 − 2210:
011001002 (x, равное десятичным 10010) − 000101102 (y, равное десятичным 2210)
в методе дополнений становится суммой:
011001002 (x) + 111010012 (первое дополнение y) + 12 (чтобы получить второе дополнение) —————————— 1010011102
После отброса левой (старшей, начальной) «1» получается ответ: 010011102 (равное десятичным 7810).
Для улучшения этой статьи желательно: |
![]() |
Это заготовка статьи по математике. Вы можете помочь проекту, дополнив её. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .