Лекция 5. Арифметика двоично-кодированных чисел
План: 1. Арифметика двоичных чисел.
2. Правила межсистемных преобразований.
Арифметика двоичных чисел.Выполнение арифметических операций над двоичными числами выполняется в соответствии со следующими значениями результатов операций:
0+0=0 0-0=0 0*0=0 0:0=н/о
0+1=1 1-0=1 1*0=0 1:0=н/о
1+0=1 0-1=н/о 0*1=0 0:1=0
1+1=10 B 1-1=0 1*1=1 1:1=1
10-1=1
Двоичное дополнение до двух. Запись всякого числа в любой системе счисления по существу можно расценивать как кодирование числа. Существуют различные способы такого кодирования. В вычислительной технике, в особенности, при работе с двоичными числами широко используется представление числа в виде прямого кода, обратного кода и дополнительного кода.
Прямой код числа характеризуется тем, что число представляется способом с фиксированной точкой. В случае обратного кода– в записи числа цифра 0 заменяется на 1 и наоборот – 1 на 0. Дополнительный код числаобразуется путем добавления единицы в младший разряд обратного кода числа.
С использованием дополнительного кода числа можно организовать операцию вычитания чисел в форме операции сложения. Для этого оба числа, участвующие в операции вычитания, преобразуются эквивалентным образом к дробному значению с нулевой целой частью и приводятся к одному формату по длине. Недостающие цифровые разряды в вычитаемом заполняются нулями. Затем для вычитаемого образуется дополнительный код, который складывается с уменьшаемым. Результат операции отсчитывается на тех же цифровых разрядах, что и числа, участвующие в операции. Значение целой части в результате операции отбрасывается. Полученное дробное число преобразуется в исходный формат.
Кодированные вычисления могут производиться с использованием вспомогательных систем счисления, в частности восьмеричной и шестнадцатиричной позиционных систем.
Восьмеричная система исчисления.Перевод чисел из десятеричной системы в двоичную требует выполнения достаточно большого объёма вычислений. Вместе с тем, программирование вычислительной техники на практике требует организации вычислений всех видов только в двоичной системе. Кроме того, адресация памяти ЭВМ также выполняется только в двоичных кодах. Работа с такими кодами, вследствие их большой длины, обычно затруднена для запоминания значений данных. В связи с этим широкое применение находит восьмеричная система исчисления, которая позволяет выполнять двоично-восьмеричные преобразования без промежуточных вычислений и таким образом облегчает запоминание длинных двоичных кодов. При этом вычислительные операции над двоичными числами могут быть заменены операциями над эквивалентными восьмеричными числами.
Преобразование восьмеричных чисел в двоичные выполняется путём прямого кодирования каждой восьмеричной цифры в составе числа двоичным кодом длиной в три разряда.
Преобразование двоичного числа в восьмеричное выполняется путём разбиения двоичного числа на группы по 3 разряда влево и вправо от десятичной точки с последующим переводом каждого трёхразрядного кода в восьмеричную цифру.
Базовый цифровой ряд восьмеричной системы включает цифры: 0,1,2,3,4,5,6,7. Соответственно, основанием системы исчисления является число 8.
Таблица соответствия между десятеричными и восьмеричными числами
Дес. сист. | ||||||||||||||||
Восм. Сист. |
Преобразование восьмеричного числа в десятеричное выполняется путём вычисления истинного значения восьмеричного числа.
Арифметика восьмеричных чисел.Арифметические операции над восьмеричными числами выполняются также как и над десятичными числами с той лишь разницей, что результат операции оценивается в абсолютных значениях с последующим переводом этих значений в восьмеричный код.
Представление чисел в восьмеричной системе способом с фиксированной и плавающей точкой выполняется по общим правилам для позиционных чисел. Для того, чтобы получить число с фиксированной точкой, достаточно заменить десятичную запятую символом точка. В случае записи числа представленного способом с плавающей точкой, мантисса числа записывается в виде восьмеричного числа, а порядок в виде десятеричного числа.
Шестнадцатеричная система исчисления.В практике программирования ЭВМ использование восьмеричной системы бывает не всегда удобным, В особенности в тех случаях, когда выполняется занесение числовых значений данных в память ЭВМ, поскольку каждый цифровой разряд восьмеричного числа кодируется на трех двоичных разрядах. При занесении такого числа в память ЭВМ его поразрядная длина всегда кратна трем. Поэтому при его размещении в ячейках памяти в виде байтов, длина которых равна восьми двоичным разрядам, происходит потеря незанятых двоичных разрядов, что приводит к нерациональному использованию памяти ЭВМ.
В связи с этим обычно используется шестнадцатеричная система, которая обладает всеми свойствами восьмеричной системы с той разницей, что каждая шестнадцатеричная цифра кодируется на четырех двоичных разрядах. Поэтому при размещении такого числа в памяти ЭВМ в тех случаях, когда его поразрядная длина содержит четное количество цифровых разрядов, оно занимает целое число байт. И только в случае, когда поразрядная длина числа нечетная, возникают потери 0,5 байт. Таким образом, максимально возможные потери при размещении шестнадцатеричных чисел в памяти не превышают 0,5 байт для каждого числа.
Двоично-шестнадцатиричные преобразования чисел производятся по следующим правилам:
Правило1.Для того, чтобы преобразовать шестнадцатеричное число в двоичное, следует каждую цифру в составе шестнадцатеричного числа представить в виде двоичного кода на четырех цифровых разрядах.
Правило2.Для того, чтобы представить двоичное число в виде шестнадцатеричного, его необходимо разбить на группы по 4 двоичных разряда влево и вправо от десятичной точки и каждую группу представить шестнадцатеричной цифрой.
Примечание. Недостающие старшие и младшие разряды двоичного числа дополняются незначащими нулями.
Базовый цифровой ряд шестнадцатеричной системывключает следующие цифры: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Основанием системы является число S=16.
Таблица соответствия десятеричных и шестнадцатеричных чисел.
Десятирич. сист. | Шестнадцатирич. сист. |
A | |
B | |
C | |
D | |
E | |
F |
Перевод десятеричных чисел в шестнадцатеричные выполняется по общим правилам межсистемных преобразований для позиционных чисел. Раздельно для целой и дробной части. При записи шестнадцатеричное число помещается индексом Н. В записи числа в крайней левой позиции всегда должна стоять цифра. Если записываемое число начинается с шестнадцатеричной цифры в буквенном представлении, перед ней следует ставить 0.
Преобразование шестнадцатеричного числа в десятеричное выполняется по правилу вычисления истинного значения позиционного числа.
Литература:
1. А.М. Ларионов, С.А. Майоров, Г.И. Новиков. Вычислительные комплексы, системы и сети.-Л.: Энергоатомиздат, 1987.
2. К. Хамахер, З. Вранешич, С. Захи. Организация ЭВМ. СПб.: Питер, 2003-848 с.
3. Э. Таненбаум. Архитектура компьютера.-СПб.:Питер, 2003-704с.