Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Арифметические двоичные коды.






Ранее уже был рассмотрен двоичный арифметический код, применяющийся для хранения чисел и в вычислениях. Его называют также прямым кодом. При использовании прямого кода знак числа кодируется с помощью сигнального знакового разряда, принимающего значение 0 для положительных и 1 – для отрицательных чисел. Применение прямого кода неудобно тем, что при сложении двух чисел, имеющих разные знаки, операция сложения должна быть заменена операцией вычитания меньшей величины из большей с присвоением результату знака большей величины. Более удобен в вычислительных операциях двоичный дополнительный код, который, также являясь арифметическим, позволяет заменить вычитание обычным сложением. При формировании дополнительного кода исходят из понятия дополнения. Дополнением целого числа Q называют разность:

, (2.13)

где m – максимальное число разрядов двоичного числа в данном вычислительном устройстве, включая знаковый разряд.

При записи числа Q в дополнительном коде согласно формуле (2.13) значение кодовой комбинации M, отображающей величину Q, если её интерпретировать как арифметический код без знака, может изменяться от 0 до 2m – 1. При этом значение M от 0 до 2m-1 – 1 рассматривают как положительные числа (в знаковом разряде находится 0), а значения от 2m-1 до 2m-1 – 1 – как отрицательные числа, модуль которых составляет от 0 до 2m-1 – 1 (в знаковом разряде находится 1). Правомерность данной интерпретации доказывается тем, что сумма значения Q и его дополнения M, как следует из соотношения (2.13), всегда равна 2m, т.е. единице старшего разряда. Последний не отображается, так как находится за пределами принятой разрядной сетки, а во всех m разрядах нашего кода при суммировании Q и M будут записаны нули. Следовательно, число Q и его дополнение M отображают числа, равные по модулю и противоположные по знаку.

Представив соотношение (2.13) в виде:

,

получим простую процедуру формирования дополнения числа Q. Предварительно заметим, что ((2m – 1) – Q) – это инверсия (обратный код) числа Q, которую получают заменой единиц нулями, а нулей единицами. Следовательно, для получения дополнения необходимо исходное число инвертировать и прибавить к полученной инверсии единицу. Следствия:

• если число Q представлено в дополнительном коде, то его дополнение тоже оказывается представленным в дополнительном коде;

• положительные числа записываются в прямом и дополнительном кодах одинаково;

• для изменения знака числа, записанного в дополнительном коде, необходимо это число инвертировать, а затем прибавить к полученной инверсии единицу;

• для перевода отрицательного числа, записанного в прямом коде, в дополнительный код и обратно необходимо инвертировать лишь значащую часть числа и прибавить к полученному результату единицу.

Сложение отрицательных чисел в дополнительном коде производится по тем же правилам, что и сложение положительных чисел. Вычитание производится путём сложения уменьшаемого и дополнительного кода вычитаемого.

Пример 2.1. Сложить числа –(214 + 1) и 17 при m = 16, а затем из полученного результата вычесть 17.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.