Interested Article - Обратный код
- 2021-02-01
- 1
Обратный код ( англ. ones' complement ) — метод вычислительной математики , позволяющий вычесть одно число из другого, используя только операцию сложения над натуральными числами . Ранее метод использовался в механических калькуляторах ( арифмометрах ). Многие ранние компьютеры, включая CDC 6600 , , PDP-1 и , использовали обратный код. Большинство современных компьютеров использует дополнительный код .
Описание
Обратный 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 -разрядный обратный код позволяет представить числа от −(2 N−1 −1) до 2 N−1 −1, а дополнительный код - от −2 N−1 до 2 N−1 −1.
Двоичный пример
Метод дополнений в основном используется в двоичной системе счисления (с основанием 2 10 ). В двоичной системе счисления дополнение до единицы ( обратный код ) очень просто получается инверсией каждого бита (заменой «0» на «1» и наоборот). Дополнение до двух ( дополнительный код ) может быть получено из дополнения до единицы (обратного кода) добавлением единицы в младший значащий разряд (бит). Например, рассмотрим вычитание двух целых чисел: 100 10 − 22 10 . Каждое число записываем 8-битовым кодом, при этом самый старший, 8-й разряд считается знаковым.
0110 01002 (x, равное десятичным 10010) − 0001 01102 (y, равное десятичным 2210)
в методе дополнений становится суммой:
0110 01002 (x) + 1110 10012 (первое дополнение y) + 12 (чтобы получить второе дополнение) ———————————— 1 0100 11102
После отбрасывания девятого (самого старшего, левого) бита получается ответ: 0100 1110 2 (это положительное число, равное десятичным 78 10 ).
См. также
Литература
- Самофалов К.Г., Романкевич А.М., Валуйский В.Н., Каневский Ю.С., Пиневич М.М. Прикладная теория цифровых автоматов. — К. : Вища школа, 1987. — 375 с.
- Сединин В.И., Микушин А.В., Сажнев А.М. Цифровые устройства и микропроцессоры. — С.Петербург: БХВ, 2010. — 832 с.
Ссылки
- от 9 ноября 2011 на Wayback Machine К. Г. Жуков «Справочное руководство пользователя Fixed-Point Blockset» 1.2. Понятие прямого, обратного и дополнительного кодов
- 2021-02-01
- 1