Файл: Сарингулян, Э. В. Арифметические и логические основы цифровых машин учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.10.2024
Просмотров: 54
Скачиваний: 0
В соответствии с записью Л'др ——0,100...11; |
-г 10...I. |
Рассмотренная форма изображения числа в машине называет ся нормальной. Если первая цифра мантиссы ЛА’ Р равна еди
нице < Л ^ Р< lj, то представление числа N в этом случае
называется ненорм ализов аниым.
Врезультате арифметических операций с нормализованны ми числами может образоваться число в ненормализованной форме
Л/, — 2р• /У,Лр,
где |
= |
О, Л/_, N-., . ■ ■ N..k N ^ k ,, . . • Л'_„, |
и |
|
N - 1= |
• • - =N-k> N-(k Iи = '• |
авто |
В этом случае нормализация в машине осуществляется |
матически за счет сдвига разрядов Л //1’ на к единиц влево и
уменьшения порядка р на величину к, т. е. NХ—‘2Р ~k■ |
где |
|
Д№ = 0, N-tk-i d |
•••ЛДт . Нормализованное представ |
ление чисел с порядками повышает точность вычислений в ма шине, так как сохраняется в разрядной сетке большое число значащих цифр. При сложении нормализованных чисел и ма шинах с плавающей запятой может возникнуть переполнение разрядной сетки, приводящее к образованию единицы слева от запятой. Такое переполнение устраняется сдвигом мантиссы на один разряд вправо и увеличением порядка на единицу. По добное приведение числа называется «нормализацией впра во». Переполнение более чем на один разряд встречается в ма шинах с плавающей запятой редко. Отсюда следует основное достоинство этих машин — широкий диапазон представления чисел за счет группы порядка.
Нормальная форма представления чисел усложняет, одна ко, реализацию операций в машине, так как становится необ ходимым выполнять дополнительные действия над порядками. Поэтому изображение чисел с плавающей запятой использует ся в универсальных цифровых машинах, где круг решаемых задач весьма разнообразен.
Некоторые ЭЦВМ могут (выполнять вычисления в нормаль ной или естественной форме, выбранной в зависимости от ха рактера задачи.
§ 2.3. Машинные коды
Исходные данные, а также промежуточные результаты в машинах могут быть положительными или отрицательными числами. Для изображения положительного знака использует ся двоичный код 0, для отрицательного — двоичный код 1, расположение которых примем перед старшим разрядом ман тиссы с отделением запятой. В числах с плавающей запятой
2* |
19 |
помимо знака мантиссы имеется еще знак порядка, изображе ние которого аналогично знаку мантиссы.
Например, двоичные числа +0,01101 и —0,10011 в естест венной форме с закодированными знаками представляются следующим образом: 0,01101 и 1,10011. Для двоичных чисел
+ 0,11001 ■10 '011 и —0,10001-10 100изображение в нормальной форме соответствует записи:
1,011 |
о,пот |
и |
одоо |
1,10001 |
порядок |
мантисса |
|
порядок |
мантисса |
со знаком |
со знаком |
|
со знаком |
со знаком |
Двоичные числа, записанные в естественной или нормальной форме, кодируются в ЭЦВМ в виде прямого, обратного или дополнительного кодов.
Изображение двоичного числа N в прямом коде [Л/|пр ос новано на представлении его абсолютного значения с закоди рованным знаком.
Если |
|
|
|
|
|
|
|
|
А '= + 0 , |
АД, АД 2АД, ... ЛДт , |
го [Л/|„р=0, АД, АД2АД3.••АДШ; |
||||||
если |
АД, АД, А Д ,... ЛДт , то |Л']пР— 1, АД, /V. 2АД3.. •ЛДЛ1, |
|||||||
Л '- — 0, |
||||||||
где ЛД,, ЛЛ.-'J> * " |
» ЛД |
—двоичные цифры. |
|
|||||
В общем случае формула для образования прямого |
кода |
|||||||
двоичного числа N имеет вид Г1] |
|
|
|
|
||||
|
|
|
.V |
при |
V - 0, |
|
|
|
|
1 |
lMl> | 1 — |
у V |
п р и |
Л Д - Д 0 . |
|
|
|
Пример. N = —0,11101, |
тогда |
[Л']пр = |
1 — (— 0,11101) = |
|||||
= 1, 11101, |
|
|
|
|
|
0, 10101. |
|
|
|
;V = + 0,10101, тогда |
[jVJпр = |
|
|||||
Нуль в прямом коде, как это следует из формулы |
(2.1), |
|||||||
имеет двоякое изображение: |
|
|
|
|
|
|||
|
N = + 0.00...0 |
[А ,г|пр — 0,00 |
• ■ ■0 |
|
||||
|
N = —0,00...0 |
[/V]„p - |
1,00 |
. • |
0 |
|
Прямой код в цифровых машинах используется во внешних устройствах, для хранения положительных и отрицательных двоичных чисел в запоминающем устройстве, а также для сло жения положительных чисел и в большинстве случаев для вы полнения операции умножения в арифметическом устройстве,
20
Однако реализация операций сложения чисел разных зна ков, вычитания и деления в прямом коде потребовала бы зна чительного усложнения структуры арифметического устройст ва машины, так как при этом действия над цифровыми и зна ковыми разрядами были бы неаналогичными. Поэтому в АУ прямой код для кодирования отрицательных чисел при выпол нении операций не используется, кроме действия умножения.
Для упрощения структуры машины отрицательные пра вильные дроби, представленные в двоичной системе, кодируют ся в виде дополнений до 10 или до 10— 10“ "г, гд е т —количест во разрядов, 10 — основание двоичной системы счисления. Код, образованный дополнением до 10, называется дополнительным кодом. Второй вид дополнения носит название обратного кода. Использование этих кодов позволяет заменить операцию вы читания сложением, а операцию деления свести к последова тельности действий сложения и сдвигов. В результате основ ным блоком арифметического устройства определяется сумма тор, в котором цифровые разряды чисел складываются анало гично знаковым.
Для получения дополнительного или обратного кода отри цательных мантисс используются следующие зависимости:
или |
[ л г 0п = 10 + W |
(2.6) |
|||
[Л/]обР = 10— 10~m+ ;V, |
(2.7) |
||||
|
|
||||
где |
;V = — 0, AAj Лй_2. • •N - m. |
|
|||
|
Примеры: 1 . N = —0,11001, тогда [Л/]доп = 10 + (—0,110001 ) = |
||||
= |
1,00111 |
|
|
||
и |
|
[yV]o6p =10 — 0,00001 + |
(—0,11001) = |
1,00110. |
|
|
|
||||
|
2. |
Л7=—0,00011, тогда |
[УУ]Д0В= Ю + |
(—0,00011) =1,11101 |
|
и |
[TVJoop =10 — 0,00001 + (—0,00011) = 1,11100. |
||||
|
Из приведенных примеров можно вывести следующие пра |
||||
вила образования кодов: |
|
отрацительного |
|||
|
1) |
для получения дополнительного кода |
числа необходимо в знаковый разряд записать единицу, а все цифры разрядов заменить обратными значениями и к младше му разряду прибавить единицу;
2) для получения обратного кода отрицательного числа необходимо в знаковый разряд записать единицу, а все цифры разрядов заменить обратными значениями.
Положительные числа своего изображения в рассмотрен ных кодах не меняют.
Для образования дополнительного или обратного кодов от рицательных целых чисел могут быть использованы приведен-
21
пые выше правила. Тогда дополнения будут соответственно образованы до 10" или до 10” — 1, где п— количество разрядов целого числа.
Пример. N = — 101, тогда
ГЛЧдо„ = 10000 + |
( - 101) = 1, 011 |
|||
|
|
знак цифровые |
||
и |
|
разряды |
||
+ |
(— 101) =_1, |
010 |
||
[/Vjo6p = 10000-1 |
||||
|
|
знак цифровые |
||
|
|
|
разряды |
|
Подобные преобразования |
выполняются |
над порядками, |
которые в машинах с плавающей запятой представлены целы ми числами. Использование дополнительного или обратного кодов целых чисел позволяет производить операции сложения или вычитания над порядками в сумматоре арифметического устройства, аналогичные действиям над мантиссами чисел.
Для образования прямого кода отрицательного числа из до полнительного или обратного кода применяются те же прави ла. Этот перевод необходим в случае передачи отрицательных результатов на хранение в запоминающее устройство или при выводе во внешние устройства машины.
Рассмотрим, как суммируются числа в дополнительном и обратном кодах.
Замена вычитания чисел в прямом коде операций сложе ния в дополнительном или обратном кодах позволяет сумми ровать знаковые разряды аналогично цифровым, а в случае образования единицы переноса из цифровых разрядов числа в знаковые последняя суммируется со знаковыми разрядами суммы. Однако операции с единицей переноса из знакового разряда суммы для дополнительного и обратного кодов раз личны.
При сложении чисел, по абсолютному значению меньших единицы, в дополнительных кодах результат можно предста вить в виде
[ + 'V .U + [ - Л'21доп = Л/, + [10 + ( - /V',)] = 10 -|- (Л^ - М,).
При этом возможны случаи АО—А^^-О или —N2< 0. Если АО—N2> 0, то результат суммирования положителен, и перевод из дополнительного кода не требуется, поскольку он соответст вует прямому коду положительного числа, т. е. [Ny—N2]np. Единица второго разряда числа 10 является единицей перено са из знакового разряда суммы и в дополнительном коде не учитывается:
[ +■ Af,]lon + [ — Л^до,, — 10 (Ay -j- /V,) — [/V, А'2!Пр-