выполнение арифметических операций в машинных кодах

Выполнение арифметических операций в машинных кодах

2. Основы машинной арифметики с двоичными числами.

Любая информация (числа, команды, записи и т. п.) представляется в ЭВМ в виде двоичных кодов фиксированной или переменной длины. Отдельные элементы двоичного кода, имеющие значение 0 или 1, называют разрядами или битами. Двоичный код состоящий из 8 разрядов носит название байта. Для записи чисел также используют 32-разрядный формат (машинное слово), 16-разрядный формат (полуслово) и 64-разрядный формат (двойное слово).

В ЭВМ в целях упрощения выполнения арифметических операций применяют специальные коды для представления чисел. Использование кодов позволяет свести операцию вычитания чисел к арифметическому сложению кодов этих чисел. Применяются прямой, обратный и дополнительный коды чисел. Прямой код используется для представления отрицательных чисел в запоминающем устройстве ЭВМ, а также при умножении и делении. Обратный и дополнительный коды используются для замены операции вычитания операцией сложения, что упрощает устройство арифметического блока ЭВМ. К кодам выдвигаются следующие требования:
1) Разряды числа в коде жестко связаны с определенной разрядной сеткой.
2) Для записи кода знака в разрядной сетке отводится фиксированный, строго определенный разряд.
Например, если за основу представления кода взят один байт, то для представления числа будет отведено 7 разрядов, а для записи кода знака один разряд.

Прямой код. Прямой код двоичного числа совпадает по изображению с записью самого числа. Значение знакового разряда для положительных чисел равно 0, а для отрицательных чисел 1.

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

Обратный код. Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.

Дополнительный код. Дополнительный код положительного числа совпадает с прямым кодом. Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы.

Для числа +1101:

Прямой кодОбратный кодДополнительный код
0,00011010,00011010,0001101

2.2 Особенности сложения чисел в обратном и дополнительном кодах.

При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается.

При сложении чисел в обратном коде возникающая единица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.

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

Сложить двоичные числа X и Y в обратном и дополнительном кодах.

1) Сложим числа, пользуясь правилами двоичной арифметики:

2) Сложим числа, используя коды:

Прямой кодСложение в обратном
коде
Сложение в дополнительном
коде

1) Сложим числа, пользуясь правилами двоичной арифметики:

2) Сложим числа, используя коды:

Прямой кодСложение в обратном
коде
Сложение в дополнительном
коде

2.3 Модифицированные обратный и дополнительный коды.

При переполнении разрядной сетки, происходит перенос единицы в знаковый разряд. Это приводит к неправильному результату, причем положительное число, получившееся в результате арифметической операции может восприниматься как отрицательное (так как в знаковом разряде «1») и наоборот.

Рассмотрим предыдущий пример, выполнив сложение в модифицированном обратном коде:

1) Переведем X и Y в модифицированный дополнительный код:

Обычная записьМодифицированный
обратный
код
Модифицированный дополнительный
код
X= +101001

2) Выполним сложение:

2) Перевести X и Y в прямой, обратный и дополнительный коды. Сложить их в обратном и дополнительном кодах. Результат перевести в прямой код. Проверить полученный результат, пользуясь правилами двоичной арифметики.

3) Сложить X и Y в модифицированном обратном и модифицированном дополнительном восьмиразрядных кодах. В случае появления признака переполнения увеличить число разрядов в кодах и повторить суммирование. Результат перевести в прямой код и проверить, пользуясь правилами двоичной арифметики.

Источник

МАШИННЫЕ КОДЫ И АЛГОРИТМЫ ВЫПОЛНЕНИЯ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ НАД МАШИННЫМИ КОДАМИ

Сущность и назначение машинных кодов. В ЭВМ посредством применения специальных машинных ко­дов все арифметические операции над числами сво­дятся к выполнению операции арифметического сло­жения и сдвигу их кодов вправо или влево. При этом учитываются знаки чисел, автоматически определяют­ся знак результата и признаки возможного перепол­нения разрядной сетки заданных форматов. Приме­няются прямой, обратный и дополнительный коды. Замена операции вычитания на сложение может осу­ществляться с помощью обратного и дополнительного кодов. Сущность этого процесса заключается в том, что вычитаемое В, как отрицательное число, предста­вляется в виде дополнения до некоторой константы К, при которой выполняется условие К-В>0. Обратный и дополнительный коды отличаются выбором значе­ния константы К. Следовательно, операцию С = А-В, где А и В целые положительные числа в любой системе счисления, можно представить в виде:

выполнение арифметических операций в машинных кодах. image002. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-image002. картинка выполнение арифметических операций в машинных кодах. картинка image002. 2. Основы машинной арифметики с двоичными числами.

где 10 — основание любой системы счисления.

К = 10 n — константа образования дополнительно­го кода;

п — количество разрядов представления целых чисел в выбранной системе счисления (для дробных чисел п = 0).

Из выражения (1.8) следует, что из полученной суммы нужно исключить добавленную к вычитаемо­му константу.

Рассмотрим примеры действий над числами. выполнение арифметических операций в машинных кодах. image003. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-image003. картинка выполнение арифметических операций в машинных кодах. картинка image003. 2. Основы машинной арифметики с двоичными числами.

Из примера 1 следует, что операция вычитания за­меняется операцией сложения с дополнениями, при этом из полученной суммы константа дополнительно­го кода компенсируется просто ликвидацией 1 перено­са из старшего разряда суммы, а константа обратного кода компенсируется путем исключения единицы пе­реноса и добавления ее к младшему разряду суммы, т. е. требуется дополнительная операция сложения. Поэто­му в ЭВМ для выполнения действий используется до­полнительный код, а обратный код используется для образования дополнительного кода.

По результатам действий под числами с дополне­ниями легко определить знак суммы и наличие пере­полнения разрядной сетки (сумма равна или больше по модулю константы образования дополнительного кода).

выполнение арифметических операций в машинных кодах. image004. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-image004. картинка выполнение арифметических операций в машинных кодах. картинка image004. 2. Основы машинной арифметики с двоичными числами.

Из примеров 1 и 2 следует, что при сложении чи­сел с разными знаками (С и C1) единица переноса из старшего разряда суммы является признаком положи­тельного результата (С), отсутствие переноса (C1) — признаком отрицательного результата, при этом кон­станта образования дополнительного кода не скомпен­сирована и осталась в сумме.

При сложении чисел с одинаковыми знаками при­знаки противоположны: отсутствие переноса едини­цы из старшего разряда при положительных, слагае­мых (С2) является признаком положительного резуль­тата, наличие переноса при отрицательных слагаемых (С3) — признаком отрицательного, при этом одна кон­станта компенсируется переносом, а вторая сохраня­ется в сумме. Эти же признаки в суммах (С2 и С3) ука­зывают на отсутствие переполнения разрядной сетки для записи результатов (результаты имеют 2 десятичных разряда).

выполнение арифметических операций в машинных кодах. image005. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-image005. картинка выполнение арифметических операций в машинных кодах. картинка image005. 2. Основы машинной арифметики с двоичными числами.

Рассмотрим образование кодов в двоичной систе­ме счисления на примере А = ±34. Знак числа, как было указано выше, кодируется 0 или 1, записывается перед старшим разрядом и отделяется для наглядности точкой, которая не является частью кода и в разрядной сетке не отражается. Для простоты примем, что задана разрядная сетка в один байт, т. е. 8 двоичных разрядов, из которых один отводится под знак, а 7 для записи

выполнение арифметических операций в машинных кодах. image006. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-image006. картинка выполнение арифметических операций в машинных кодах. картинка image006. 2. Основы машинной арифметики с двоичными числами.

Примем константу для дополнительного кода:

выполнение арифметических операций в машинных кодах. h. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-h. картинка выполнение арифметических операций в машинных кодах. картинка h. 2. Основы машинной арифметики с двоичными числами.

выполнение арифметических операций в машинных кодах. image007. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-image007. картинка выполнение арифметических операций в машинных кодах. картинка image007. 2. Основы машинной арифметики с двоичными числами.

Правила образования машинных кодов. 1) прямой код положительного и отрицательного чисел отличает­ся только знаковыми разрядами, модуль числа не изменя­ется;

2) положительное число в прямом, обратном и допол­нительном кодах имеет одинаковое изображение;

3) обратный код отрицательного двоичного числа об­разуется из прямого кода положительного числа путем замены всех единиц, на нули, а нулей на единицы, включая знаковый разряд;

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

Определение прямого кода отрицательного числа по его обратному и дополнительному коду произво­дится по тем же правилам.

Числа, представленные в естественной форме, в памяти ЭВМ представляются в дополнительном коде, числа в нормальной форме хранятся в прямом коде. Действия в ЭВМ выполняются в прямом и дополни­тельном кодах, обратный код используется для полу­чения дополнительного кода.

Действия над машинными кодами чисел. А. Дей­ствия над числами, представленными в естественной форме

При сложении кодов чисел в естественной форме следует учитывать следующие положения:

1) числа хранятся в памяти в дополнительном коде;

2) в сумматоре числа складываются вместе со зна­ками, при этом образуется знак результата;

3) при сложении чисел с разными знаками единица переноса из знакового разряда стирается, т. е. компен­сируется одна константа образования дополнительно­го кода;

4) признаками переполнения разрядной сетки при сложении кодов чисел с одинаковыми знаками могут служить:

а) знак суммы не соответствует знакам слагаемых;

б) переносы из старшего разряда суммы в знако­вый и из знакового не согласуются, т. е. один из них присутствует, а другой отсутствует.

Очевидно, что если переносы согласуются, т. е. оба отсутствуют или оба присутствуют, то переполнения разрядной сетки не происходит.

Пример 4. Даны два числа: А = 254,5 и B= 175.

Найти сумму чисел при разных знаках слагаемых в 16-ти разрядном формате.

а) Представим исходные числа в двоичной системе счисления:

б) Составим машинные коды этих чисел с разными знаками:

[B]ПК= 0.000000010101 111.

в) Выполним действия:

выполнение арифметических операций в машинных кодах. image008. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-image008. картинка выполнение арифметических операций в машинных кодах. картинка image008. 2. Основы машинной арифметики с двоичными числами.

Из примера следует:

1) при получении сумм слагаемых с одинаковыми знаками (C1 и C4) переполнения разрядной сетки не произошло, так как знак суммы соответствует знакам слагаемых и переносы в знаковый и из знакового со­гласуются;

2) при получении сумм С2 и C4 образовался перенос из знакового разряда, который следует исключить;

3) суммы C1 и С2 — положительные, С3 и С4 отрицательные, т. е. знаки результатов получены при сложении чисел со знаками.

Полученные суммы заносятся в разрядную сетку памяти в дополнительном коде, т. е. без изменения.

Проверка. Для этого следует перевести получен­ные суммы любым способом в десятичную систему и сравнить с заданием.

выполнение арифметических операций в машинных кодах. image009. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-image009. картинка выполнение арифметических операций в машинных кодах. картинка image009. 2. Основы машинной арифметики с двоичными числами.

Полученные суммы не соответствуют ожидаемым результатам, поскольку произошло переполнение раз­рядной сетки за допустимые значения (32767). Пере­полнение разрядной сетки легко определить либо по первому признаку — знаки сумм C1 и С2 не соответ­ствуют знакам слагаемых, либо по второму—переносы в знаковый и из знакового разряда в суммах С1 и С2не согласуются. В этих случаях в больших ЭВМ выраба­тывается запрос на прерывание программы, в некото­рых типах малых ЭВМ производится автоматический переход к нормальной форме представления данных.

Замечание. Операции умножения и деления произ­водятся над абсолютными значениями чисел — в пря­мом коде. Знак произведения определяется сложением по модулю 2 знаков сомножителей (0+0== 0,1+0=1, 1+1 =0), знак частного — сложением по модулю 2 знаков делимого и делителя, а знаку остатка присваи­вается знак делимого.

Источник

Выполнение арифметических операций в машинных кодах

Арифметические операции на сумматорах прямого, обратного и дополнительного кода

Все операции в ЭВМ выполняют над числами, представленными специальными машинными кодами. Их использование позволяет обрабатывать знаковые разряды чисел так же, как и значащие разряды, а также заменять операцию вычитания операцией сложения.

Каждому двоичному числу можно поставить в соответствие несколько видов кодов.

Различают следующие коды двоичных чисел: прямой (П), обратный (ОК) и дополнительный (ДК).

Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака (0 или 1) перед его старшим числовым разрядом.

Прямой код двоичного числа образуется по следующему алгоритму:

1) определить данное двоичное число: либо целое (порядок), либо правильная дробь (мантисса);

2) если это дробь, то цифры после запятой можно рассматривать как целое число;

3) если это целое и положительное двоичное число, то вместе с добавлением нуля в старший разряд число превращается в код.

Для отрицательного двоичного числа перед ним ставится единица.

число Y 2 = +0,11011012 → код числа Y пр = 01101101.

Подчеркиванием выделяют знаковые разряды.

Обратный код двоичного числа образуется по следующему алгоритму:

1) обратный код положительных чисел совпадает с их прямым кодом;

2) обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются инверсными, т. е. нули заменяются единицами, а единицы нулями.

Свое название обратный код получил потому, что коды цифр отрицательного числа заменены инверсными.

Наиболее важные свойства обратного кода чисел:

— сложение положительного числа С с его отрицательным значением в обратном коде дает так называемую машинную единицу МЕок = 1|1111, состоящую из единиц в знаковом и в значащих разрядах числа;

— нуль в обратном коде имеет двоякое значение.

Он может быть как положительным числом 0|0000, так и отрицательным 1|1111.

Двойственное представление нуля явилось причиной того, что в современных ЭВМ все числа представляются не обратным, а дополнительным кодом.

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

Дополнительный код положительных чисел совпадает с их прямым кодом. Дополнительный код отрицательного числа представляет собой результат суммирования обратного кода числа с единицей младшего разряда (2 0 – для целых чисел, 2 –k – для дробных).

Основные свойства дополнительного кода:

· сложение дополнительных кодов положительного числа С с его отрицательным значением дает так называемую машинную единицу дополнительного кода:

т. е. число 10 (два) в знаковых разрядах числа;

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

Арифметические действия в машинных кодах

Сложение, а также вычитание чисел в обратном или дополнительном кодах выполняют с использованием обычного правила арифметического сложения многоразрядных чисел.

Это правило распространяется и на знаковые разряды чисел.

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

При сложении чисел в обратном коде эту единицу надо прибавить к младшему разряду результата, а в дополнительном коде единица переноса из старшего разряда игнорируется, так как дополнительный код из обратного получается как раз прибавлением единицы.

Сложение и вычитание машинных чисел

Операция вычитания приводится к операции сложения путем преобразования чисел в обратный или дополнительный код согласно таблице.

Сложение (вычитание) машинных чисел

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

Сложение двоичных чисел осуществляется последовательно, поразрядно в соответствии с таблицей.

При выполнении сложения цифр необходимо соблюдать следующий алгоритм:

1) слагаемые должны иметь одинаковое число разрядов.

Для выравнивания разрядной сетки слагаемых можно дописывать незначащие нули слева к целой части числа и незначащие нули справа к дробной части числа;

2) знаковые разряды участвуют в сложении так же, как и значащие;

3) необходимые преобразования кодов производят с изменением знаков чисел. Приписанные незначащие нули изменяют свое значение при преобразованиях по общему правилу;

4) при преобразовании единицы переноса из старшего знакового разряда, в случае использования ОК, эта единица складывается с младшим числовым разрядом.

При использовании ДК единица переноса теряется. Знак результата формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые.

1. Сложить два числа: А10 = 7, В10 = 16.

Исходные числа имеют различную разрядность, необходимо провести выравнивание разрядной сетки:

Сложение в обратном или дополнительном коде дает один и тот же результат:

2. Сложить два числа: А10 = +16, В10 = –7 в ОК и ДК.

По таблице необходимо преобразование А +(–В), в которой второй член преобразуется с учетом знака:

При сложении чисел в ОК и ДК были получены переносы в знаковый разряд и из знакового разряда.

В случае ОК перенос из знакового разряда требует дополнительного прибавления единицы младшего разряда.

В случае ДК этот перенос игнорируется.

Пример сложения чисел +18 и –7 приведен в таблице.

Источник

5. Арифметические операции в ЭВМ

Все современные ЭВМ имеют достаточно развитую систему команд, включающую десятки и сотни машинных операций. Однако выполнение любой операции основано на использовании простейших микроопераций типа сложения и сдвиг. Это позволяет иметь единое арифметико-логическое устройство для выполнения любых операций, связанных с обработкой информации. Правила сложения двоичных цифр двух чисел А и В представлены в табл. 2.

Здесь показаны правила сложения двоичных цифр ai, bi одноименных разрядов с учетом возможных переносов из предыдущего разряда pi-1.

Правила сложения двоичных цифр

Перенос в следующий разряд

• • во-первых, следует отдельно обрабатывать значащие разряды чисел и разряды знака;

• • во-вторых, значение разряда знака влияет на алгоритм выполнения операции (сложение может заменяться вычитанием и наоборот).

Во всех ЭВМ без исключения все операции выполняются над числами, представленными специальными машинными кодами. Их использование позволяет обрабатывать знаковые разряды чисел так же, как и значащие разряды, а также заменять операцию вычитания операцией сложения,

Различают прямой код (П), обратный код (ОК) и дополнительный код (ДК)

5.1. Машинные коды

Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака (нуль или единица) перед его старшим числовым разрядом.

A 10 =+10 A 2 =+1010 [A 2 ] П =0:1010;

B 10 =-15 B 2 =-1111 [B 2 ] П =1:1111.

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

A 10 =+5 A 2 =+101 [A 2 ] П =[A 2 ] OK =0:101; B 10 =-13 B 2 =-1101 [B 2 ] OK =1:0010.

Свое название обратный код чисел получил потому, что коды цифр отрицательного числа заменены на инверсные. Укажем наиболее важные свойства обратного кода чисел:

• сложение положительного числа С с его отрицательным значением в обратном коде дает так называемую машинную единицу МЕок= 1: 111. 11, состоящую из единиц в знаковом и значащих разрядах числа;

A 10 =+19 A 2 =+10011 [A 2 ] П =[A 2 ] OK =[A 2 ] ДК =0:10011; B 10 =-13 В 2 =-1101 [B2] ДК =[B 2 ] OK +2 0 =1:0010+1=1:0011.

Укажем основные свойства дополнительного кода:

•сложение дополнительных кодов положительного числа С с его отрицательным значением дает так называемую машинную единицу дополнительного кода:

МЕ ДК =МЕ ОК +2 0 =10: 00…00,

т.е. число 10 (два) в знаковых разрядах числа;

•дополнительный код получил такое свое название потому, что представление отрицательных чисел является дополнением прямого кода чисел до машинной единицы МЕдк.

A 10 =9 A 2 =+1001 [A 2 ] П =[A 2 ] OK =[A 2 ] ДК =0:1001 [A 2 ] МОК =[A 2 ] МДК =00:1001;

B 10 =-9 B 2 =-1001 [B 2 ] OK =1:0110 [B 2 ] ДК =1:0111 [B 2 ] МОК =11:0110 [B 2 ] МДК =11:0111.

5.2. Арифметические операции над числами с фиксированной точкой

Сложение (вычитание). Операция вычитания приводится к операции сложения путем преобразования чисел в обратный или дополнительный код. Пусть числа A=>O и В=>О, тогда операция алгебраического сложения выполняется в соответствии с табл. 2.3.

Таблица преобразования кодов при алгебраическом сложении

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

выполнение арифметических операций в машинных кодах. htmlconvd. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-htmlconvd. картинка выполнение арифметических операций в машинных кодах. картинка htmlconvd. 2. Основы машинной арифметики с двоичными числами.

последовательно, поразрядно в соответствии с табл. 2.2. При выполнении сложения цифр необходимо соблюдать следующие правила.

1. Выравнивание слагаемых. Слагаемые должны иметь одинаковое число разрядов. Для выравнивания разрядной сетки слагаемых можно дописывать незначащие нули слева к целой части числа и незначащие нули справа к дробной части числа.

2. Знаковые разряды чисел участвуют в сложении так же, как и значащие.

3. Необходимые преобразования кодов (п.5.1) производятся с изменением знаков чисел. Приписанные незначащие нули изменяют свое значение при

Пример 1. Сложить два числа А 10 =7 В 10 =16

Исходные числа имеют различную разрядность, необходимо провести выравнивание разрядной сетки:

[A 2 ] П =[A 2 ] OK =[A 2 ] ДК =0: 00111;

[B 2 ] П =[B 2 ] OK =[B 2 ] ДК =0: 10000.

Сложение в обратном или дополнительном коде дает один и тот же результат

Обратим внимание, что при сложении цифр отсутствуют переносы в знаковый разряд и из знакового разряда, что свидетельствует о получении правильного результата.

выполнение арифметических операций в машинных кодах. htmlconvd. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-htmlconvd. картинка выполнение арифметических операций в машинных кодах. картинка htmlconvd. 2. Основы машинной арифметики с двоичными числами.

При сложении чисел в ОК и ДК были получены переносы в знаковый разряд и из знакового разряда. В случае ОК перенос из знакового разряда требует дополнительного прибавления единицы младшего разряда (см.п.4 правил). В случае ДК этот перенос игнорируется.

Умножение. Умножение двоичных чисел наиболее просто реализуется в прямом коде. Рассмотрим, каким образом оно приводится к операциям сложения и сдвигам.

Пример 3. Умножить два числа А 10 =7 В 10 =5.

Перемножим эти числа, представленные прямыми двоичными кодами, так же, как это делается в десятичной системе.

Нетрудно видеть, что произведение получается путём сложения частных произведений, представляющих собой разряды множимого, сдвинутые влево в соответствии с позициями разрядов множителя. Частные произведения, полученные умножением на нуль, игнорируются. Важной особенностью операции умножения n-разрядных сомножителей является увеличение разрядности произведения до n+n=2n. Знак произведения формируется путём сложения

знаковых разрядов сомножителей. Возможные переносы из знакового разряда игнорируются.

Деление. Операция деления, как и в десятичной арифметике, является обратной операции умножения. Покажем, что и эта операция приводится к последовательности операций сложения и сдвига.

Пример 4. Разделить два числа А 10 =45 B 10 =5

выполнение арифметических операций в машинных кодах. htmlconvd. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-htmlconvd. картинка выполнение арифметических операций в машинных кодах. картинка htmlconvd. 2. Основы машинной арифметики с двоичными числами.

Знак частного формируется также путем сложения знаковых разрядов делимого и делителя, как это делалось при умножении.

5.3. Арифметические операции над двоичными числами

с плавающей точкой

В современных ЭВМ числа с плавающей точкой хранятся в памяти машин, имея мантиссу и порядок (характеристику) в прямом коде и нормализованном виде. Все арифметические действия над этими числами выполняются так же, как это делается с ними, если они представлены в полулогарифмической форме (мантисса и десятичный порядок) в десятичной системе счисления. Порядки и

мантиссы обрабатываются раздельно.

Сложение (вычитание). Операция сложения (вычитания) производится в следующей последовательности.

1. Сравниваются порядки (характеристики) исходных чисел путем их вычитания р=р1-р2. При выполнении этой операции определяется, одинаковый ли порядок имеют исходные слагаемые.

2. Если разность порядков равна нулю, то это значит, что одноименные разряды мантисс имеют одинаковые веса (двоичный порядок). В противном случае должно проводиться выравнивание порядков.

выполнение арифметических операций в машинных кодах. htmlconvd. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-htmlconvd. картинка выполнение арифметических операций в машинных кодах. картинка htmlconvd. 2. Основы машинной арифметики с двоичными числами.

3. Для выравнивания порядков число с меньшим порядком сдвигается вправо на разницу порядков р. Младшие выталкиваемые разряды при этом теряются.

4. После выравнивания порядков мантиссы чисел можно складывать

(вычитать) в зависимости от требуемой операции. Операция вычитания заменяется операцией сложения в соответствии с данными табл. 2.3. Действия над слагаемыми производятся в ОК или ДК по общим правилам.

5. Порядок результата берется равным большему порядку p рез =max (p1,p2).

6. Если мантисса результата не нормализована, то осуществляются нормализация и коррекция значений порядка.

Пример. Сложить два числа А 10 =+ 1.375; B 10 =-0.625.

В нормализованном виде эти числа будут иметь вид:

Определяем, что р≠ 0.

2. Порядок первого числа больше порядка второго числа на единицу. Требуется выравнивание порядков.

3. Для выравнивания порядков необходимо второе число сдвинуть вправо на один разряд.

мантисса числа В в допол. коде [m’ B ]дк= 1: 1011 4. Складываем мантиссы.

5. Порядок числа С равен порядку числа с большим порядком, т.е. р c =

выполнение арифметических операций в машинных кодах. htmlconvd. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-htmlconvd. картинка выполнение арифметических операций в машинных кодах. картинка htmlconvd. 2. Основы машинной арифметики с двоичными числами.

Видно, что мантисса результата не нормализована, так как старшая цифра мантиссы равна нулю.

6. Нормализуем результат путем сдвига мантиссы на один разряд влево

и соответственно вычитаем из значения порядка единицу:

Умножение (деление). Операция умножения (деления) чисел с плавающей точкой также требует разных действий над порядками и мантиссами. Алгоритмы этих операций выполняются в следующей последовательности.

1. При умножении (делении) порядки складываются (вычитаются) так, как это делается над числами с фиксированной точкой.

2. При умножении (делении) мантиссы перемножаются (делятся).

1. Сложение порядков (1+(-1)) 0:1 + 1:1

2. Перемножение мантисс 101*11=01111

3. Определение знака результата: 0+1=1 т.е. результат отрицательный

5.4. Арифметические операции над двоичнодесятичными кодами чисел

При обработке больших массивов экономической информации переводы чисел из десятичной системы в двоичную и обратно могут требовать значительного машинного времени. Некоторые образцы ЭВМ поэтому имеют или встроенные, или подключаемые блоки, которые обрабатывают десятичные целые числа в их двоично-десятичном представлении. Действия над ними также приводятся к операции алгебраического сложения отдельных цифр чисел, представленных дополнительными кодами в соответствии с табл. 2.3.

Приведем один из алгоритмов сложения, который получил довольно широкое распространение.

1. Сложение чисел начинается с младших цифр (тетрад) и производится с учетом возникающих переносов из младших разрядов в старшие.

2. Знак суммы формируется специальной логической схемой по знаку большего слагаемого.

выполнение арифметических операций в машинных кодах. htmlconvd. выполнение арифметических операций в машинных кодах фото. выполнение арифметических операций в машинных кодах-htmlconvd. картинка выполнение арифметических операций в машинных кодах. картинка htmlconvd. 2. Основы машинной арифметики с двоичными числами.

5. Операция вычитания реализуется достаточно своеобразно. По общему правилу сложения (п.п.1-4) к тетрадам числа с большим модулем прибавляются дополнительные коды тетрад другого числа. В качестве знаке результата берется знак числа с большим модулем.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *