Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

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



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

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

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

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

3. Для того чтобы при сложении двоично-десятичных цифр возникали переносы, аналогичные при сложении чисел в десятичном представлении, необходимо проводить так называемую десятичную коррекцию. Для этого к каждой тетраде первого числа прибавляется дополнительно по цифре 610=01102, что позволяет исключить шесть неиспользуемых комбинаций (1010-1111)2, так как они кодируют шестнадцатеричные цифры A-F (числа 10-1510).

4. После операции суммирования осуществляется корректировка суммы. Из тех тетрад суммы, из которых не было переносов, изымаются ранее внесенные избытки 610=01102. Для этого проводится вторая коррекция. Операция вычитания заменяется, как и обычно, операцией сложения с числом -6,представленным дополнительным кодом 10102, но только в тех разрядах, в которых отсутствовали переносы. При этой второй коррекции переносы из тетрад блокируются.

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

 

ОПЕРАТИВНЫЙ КОНТРОЛЬ ВЫЧИСЛИТЕЛЬНЫХ ОПЕРАЦИЙ ПО ВЫЧЕТАМ

Расчетные соотношения

 

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

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

 

где – разрядность кода;

- разрядные коэффициенты;

- вес i-го разряда ( - основание кода);

При этом число A можно представить в виде:

где ³ 2 – некоторый целый делитель числа , носящий название модуля (всегда положительный);

- целое частное (положительное или отрицательное); - остаток (всегда неотрицательный):

носит название вычета или числового вычета числа , по модулю .

Два целых числа и называются сравнимыми по модулю , если их остатки при делении на одинаковые, а сравнимость записывается как

При этом предполагается, что вычеты чисел, записанных в регистрах (или в памяти), формируются без ошибок. При выполнении различных вычислительных операций над числами и может возникнуть искаженный результат, то есть вместо получится , где * - некоторая машинная операция. Над вычетами и также выполняются соответствующие операции (может быть другие, но при отсутствии ошибок приводящие к результату, совпадающему с ). Считается, что если результат операции над остатками совпадает с , то операция выполнена безошибочно. Отметим, что в большинстве случаев так оно и есть. Но, если , то есть ошибка , то она будет замаскирована и результат сравнения приведет к неправильному заключению. При увеличении выбранного модуля вероятность неправильного заключения о результате операции уменьшается. Увеличение обычно связано с увеличением аппаратной избыточности, поэтому чаще всего выполняется контроль арифметических операций по модулю 3. Наименьшая аппаратная избыточность имеет место при контроле по модулю 2 (по четности), который широко используется для проверки операций пересылок. Однако для проверки арифметических операций он используется реже из-за некоторых технических трудностей.

Рассмотрим некоторые свойства вычетов и операций сравнения.

1.

2. при любом целом .

3.

4. Если , то

5. Если (арифметическое умножение), то

6. Из и следует и .

7. Из сравнения следует сравнение при любом целом (обратное соотношение не всегда верно).

8. Если то при условии, что и взаимно просты (то есть в этом случае сравнимость не нарушается).

9. Если , то при любом целом положительном .

10. Если , где - любое целое число, а - любое простое число, то (теорема Ферма).

11. Если - целое число, не делящееся на простое число , то (следствие теоремы Ферма).

Рассмотренные свойства часто применяются для проверки правильности выполнения различных вычислительных операций.

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

 

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

(8.1)

где .

Наиболее удобно выполнять цифровой контроль по модулям (т.е. =3, 7, 15 и т.д.). Отметим, что двоичный код легко преобразуется в код с основанием . Например, для преобразования в восьмеричный код двоичные разряды объединяются в триады, для шестнадцатеричного кода выполняется объединение в тетрады и т.д., затем каждая группа представляется в соответствующем коде.

Решаемые задачи ориентированы на арифметические операции сложения и умножения, для которых справедливы приведенные выше свойства вычетов, и на логические операции «&», «Ú» и «исключающее или» (Å). При контроле арифметического деления используется косвенный метод контроля, так как в общем случае Рассмотрим основные этапы контроля по вычетам.

 

Контроль арифметических операций , где

Если , то выполняются следующие действия.

1. Вычисляются и .

2. Вычисляется (возможно с ошибкой)

3. Вычисляется .

4. Независимо вычисляется (штрих указывает на возможность ошибки).

5. Выполняется сравнение и . Если эти значения равны, то считается, что ошибка отсутствует, в противном случае вычисления повторяются.

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

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.