![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Прямой, обратный и дополнительный коды
Для выполнения в ЭВМ арифметических операций необходимо использовать специальное кодирование отрицательных чисел. Для представления знака числа требуется введение дополнительного знакового разряда. Знак минус принято кодировать символом «1», а знак плюс – символом «0». Прямой код. Прямой код целого n -разрядного двоичного числа где То есть, имеем: знаковый разряд располагается слева от числа и отделяется от последнего точкой, например: +5 = 0.101; -5=1.101. Прямой код упрощает умножение чисел, так как в этом случае для вычисления произведения необходимо перемножить модули чисел
Обратный код. Обратный код целого n -разрядного двоичного числа где Число 0 в обратном коде имеет два представления: 0.0…00 – положительный и 1.1…11 – отрицательный нули. В (n+1)-разрядных (с учетом знакового разряда) прямом и обратном кодах могут быть представлены числа То есть, имеем: обратный код двоичного отрицательного числа получается из прямого кода равного ему положительного числа инвертированием значений всех его разрядов. Например, обратный код числа -510=1.1012 есть 1.010.
Дополнительный код. Пусть требуется найти разность двух целых положительных n -разрядных чисел:
где Так как разность Максимальное значение X получается при
Таким образом,
где поэтому так как где Разность (6.3) можно представить в виде:
где Величина Если число Y может иметь любой знак, то дополнительный код
где Из определения (6.5) следуют правила получения дополнительного кода отрицательных чисел (правила преобразования прямого кода в дополнительный). Для этого необходимо: записать модуль
|