Студопедия

КАТЕГОРИИ:

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

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




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

,       (2.13)

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

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

,              (2.13’)

получим простую процедуру формирования дополнения числа Q. Предварительно заметим, что

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

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

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

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

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

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

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

Решение:

1) Запишем -(214+1) и 17 в прямом коде при m=16;

       -(214+1)=1100 0000 0000 0001;

        17=0000 0000 0001 0001.

2) Перевод заданных чисел в дополнительный код:

-(214+1)=1011 1111 1111 1110+1=1011 1111 1111 1111.

Дополнительный код положительного числа 17 совпадает с его прямым кодом.

3) Сложение-(214+1) и 17:

1011 1111 1111 1111

   +

     0000 0000 0001 0001

           1100 0000 0001 0000

4)Перевод результата в прямой код:

1011 1111 1110 1111+1=1011 1111 1111 0000.

5)Изменение знака числа 17:

-17=1111 1111 1110 1110+1=1111 1111 1110 1111.

6)Заданное вычитание числа 17:

1100 0000 0001 0000

           +

1111 1110 1110 1111

1 1011 1111 1111 1111

Поскольку переполнения нет, то перенос из старшего разряда не учитывается. В остальном результат точно совпадает с дополнительным кодом числа -(214+1).

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 336.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...