Арифметические основы ЭВМ
Все современные ЭВМ имеют достаточно развитую систему команд, включающую десятки и сотни машинных операций. Однако выполнение любой операции основано на использовании простейших микроопераций типа сложения и сдвиг. Это позволяет иметь единое арифметико-логическое устройство для выполнения любых операций, связанных с обработкой информации. Правила сложения двоичных цифр двух чисел А и В представлены в табл. 2.2.
Таблица 2.2 Правила сложения двоичных цифр
Здесь показаны правила сложения двоичных цифр аi, bi, одноименных разрядов с учетом возможных переносов из предыдущего разряда рi-1.
Подобные таблицы можно было бы построить для любой другой арифметической или логической операции (вычитание, умножение и т.д.), но именно данные этой таблицы положены в основу выполнения любой операции ЭВМ. Под знак чисел отводится специальный знаковый разряд. Знак «+» кодируется двоичным нулем, а знак «-» — единицей. Действия над прямыми кодами двоичных чисел при выполнении операций создают большие трудности, связанные с необходимостью учета значений знаковых разрядов:
• во-первых, следует отдельно обрабатывать значащие разряды чисел и разряды знака;
• во-вторых, значение разряда знака влияет на алгоритм выполнения операции (сложение может заменяться вычитанием и наоборот). Во всех без исключения ЭВМ все операции выполняются над числами, представленными специальными машинными кодами. Их использование позволяет обрабатывать знаковые разряды чисел так же, как и значащие разряды, а также заменять операцию вычитания операцией сложения.
Различают прямой код (П), обратный код (ОК) и дополнительный код (ДК) двоичных чисел.
Машинные коды
Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака (нуль или единица) перед его старшим числовым разрядом.
Пример 2.5.
Точечной вертикальной линией здесь отмечена условная граница, отделяющая знаковый разряд от значащих.
Обратный код двоичного числа образуется по следующему правилу. Обратный код положительных чисел совпадает с их прямым кодом. Обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются на инверсные, т.е. нули заменяются единицами, а единицы — нулями.
Пример 2.6.
Свое название обратный код чисел получил потому, что коды цифр отрицательного числа заменены на инверсные. Укажем наиболее важные свойства обратного кода чисел:
• сложение положительного числа С с его отрицательным значением в обратном коде дает так называемую машинную единицу МЕок=1¦ 11…111, состоящую из единиц в знаковом и в значащих разрядах числа;
• нуль в обратном коде имеет двоякое значение. Он может быть как положительным числом — 0¦ 00...0, так и отрицательным — 1 ¦ 11...11. Значение отрицательного нуля совпадает с МЕок. Двойственное представление нуля явилось причиной того, что в современных ЭВМ все числа представляются не обратным, а дополнительным кодом.
Дополнительный код положительных чисел совпадает с их прямым кодом. Дополнительный код отрицательного числа представляет собой результат суммирования обратного кода числа с единицей младшего разряда (20 — для целых чисел, 2-k — для дробных).
Пример2.7.
Укажем основные свойства дополнительного кода:
• сложение дополнительных кодов положительного числа С с его отрицательным значением дает так называемую машинную единицу дополнительного кода:
МЕдк=МЕок+20=10¦ 00...00,
т.е. число 10 (два) в знаковых разрядах числа;
• дополнительный код получил такое название потому, что представление отрицательных чисел является дополнением прямого кода чисел до машинной единицы МЕдк.
Модифицированные обратные и дополнительные коды двоичных чисел отличаются соответственно от обратных и дополнительных кодов удвоением значений знаковых разрядов. Знак «+» в этих кодах кодируется двумя нулевыми знаковыми разрядами, а знак «-» — двумя единичными разрядами.
Пример 2.8.
Целью введения модифицированных кодов являются фиксация и обнаружение случаев получения неправильного результата, когда значение результата превышает максимально возможный результат в отведенной разрядной сетке машины. В этом случае перенос из значащего разряда может исказить значение младшего знакового разряда. Значение знаковых разрядов «01» свидетельствует о положительном переполнении разрядной сетки, а «10» — об отрицательном переполнении. В настоящее время практически во всех моделях ЭВМ роль удвоенных разрядов для фиксации переполнения разрядной сетки играют переносы, идущие в знаковый и из знакового разряда.
Дата добавления: 2017-01-26; просмотров: 4019;