Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Арифметические двоичные коды
В предыдущем параграфе был уже рассмотрен двоичный арифметический код, применяющийся для хранения чисел и в вычислениях. Его называют также прямым кодом. При использовании прямого кода знак числа кодируется с помощью специального знакового разряда, принимающего значение 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 не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |