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

Здесь Q - основание системы счисления, a и b - цифры одного разряда слагаемых.

Если S > q или S = q, то значение суммы ориентируется на значение q. А блок 7 устанавливает для следующего разряда единичное значение (появляется перенос в следующие разряды).

Блок 4 организует цикл из N операций, а блок 5 обращается к алгоритму 1 и сообщает ему в качестве исходных данных цифры i-того разряда А и В, а возвращает перенос и знак суммы.
Считается, что результат имеет длину N, то есть перенос из N-ого разряда в N+1-ый игнорируется.
Пример:
23410 = 0.234пр =
0.234об = 0.234дп
-72610 = 9.726пр = 9.273об = 9.274дп
-49210 = 9.492пр = 9.507об = 9.508дп =
9.492пр = -49210
Пример:
-23410 = 99.234пр
= 99.765234об = 99.766дп
-72610 = 99.726пр = 99.273об = 99.274дп
-96010 = 99.960пр = 99.039об = 99.960пр
= -96010
Несовпадение знаковых разрядов указывает на переполнение разрядной сетки.
Так как числа с разными порядками суммировать нельзя, то для сложения двух чисел в нормальной форме представления необходимо выполнить операцию выравнивания порядков.
А = m1*qр1
В = m2*qр2
где m1, m2 - мантиссы, р1 и р2 - порядки.
Необходимо предварительно привести их к общему порядку, то есть преобразовать одно из слагаемых следующим образом:
Робщ = max ( p1*p2 )
В = (m2`)*qробщ
C = A+B = m*qp = m1*qробщ+ m2`*qробщ= (m1+(m2`))*qробщ
Преобразованная мантисса должна быть правильной дробью, поэтому преобразованию всегда подвергается меньшее слагаемое, так как в противном случае может произойти переполнение разрядной сетки мантиссы преобразованного числа.
Пример:
0.4726*102 + 0.9132*100
= 102(0.4726 + 0.0091) = 0.4817*102
0.10112*2-1 + 0.10112*21 = 21*(00.00102
+ 00.11012) = 01.00002*21 = 0.10002*22
Мантисса может переполнить разрядную сетку, при этом использование модифицированных кодов позволяет не только отметить факт переполнения, но и восстановить правильный результат. Это обеспечивается сдвигом мантиссы на одну позицию в сторону младших разрядов и увеличением порядка на 1.
При сложении чисел в нормальной форме можно выделить 4 этапа:
В двоичной системе счисления таблицы умножения описывают функцию коньюкции:
| A | B | C |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
При умножении коньюкция составляет матрицу размером N*N.
Пусть N = 4:
| A | 4 | 3 | 2 | 1 | ||||
| B | 4 | 3 | 2 | 1 | ||||
| 14 | ||||||||
| 24 | 13 | |||||||
| 34 | 23 | 12 | ||||||
| 44 | 33 | 22 | 11 | |||||
| 43 | 32 | 21 | ||||||
| 42 | 31 | |||||||
| 41 | ||||||||
| C | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
Разряды сомножителей коньюкции (с 1-го по 4-ый) обозначены двузначными числами, состоящими из номеров разряда сомножителей, а для произведения С указаны веса его разрядов от 20 до 27. Матрица имеет симметричный вид.
Наклонные линии, содержащие коньюкции, являются произведением одного сомножителя на разряд другого. Умножение может выполняться, к примеру, по схеме:

Здесь А и В - множители, N - их разрядность. Начальное значение суммы S устанавливается в блоке 3. В блоке 4 организуется цикл из N итераций (повторений), выполняемых за N тактов . Блок 5 разрешает работу блока 6 лишь при значении В1= 1 и реализует функцию коньюкторов, умножающих разряды множимого А на первый младший разряд Вi множителя В. Блок 7 сдвигает на 1 позицию вправо числа В и S, при этом место младшего разряда В1 множителя занимает следующий по старшинству разряд. По окончанию всех итераций блок 8 выводит S - результат умножения.
В данном способе вычисления выполняются начиная с младшего разряда множителя В с изменением взаимного положения чисел S и А путём сдвига суммы S.
Операция деления выполняется над числами А - делимым и В - делителем. Её результатом является частное С и остаток D.
А = ВС + D, |D| < В
Операция деления реализуется через многократное вычитание делителя В из делимого А. Это достигается сложением чисел в обратном и дополнительном кодах. Наиболее простой способ деления описывает алгоритм последовательного вычитания:

Если условие А < В не выполняется, то число А умножается на величину В, при этом значение частного увеличивается на 1 и происходит возврат к блоку 4. Если выполняется условие А < В, мы выводим частное С и остаток D.
Описанный алгоритм относится к целочисленному делению и применяется для выполнения операций над числами в естественной форме представления (то есть с фиксированной точкой). Числа с плавающей точкой обрабатываются с использованием точностного деления, которое выполняется над нормализованными мантиссами чисел.
Точностное деление определяет частное с заданным количеством разрядов, а остаток игнорируется. Такое деление характеризуется алгоритмом с восстановлением остатка.

Значащими цифрами числа называют все его цифры кроме нулей, стоящих левее первой отличной от нуля цифры:
| 0 | 0 | 0 | 2 | 3 | 0 | 0 |
< Значащие цифры > |
Абсолютная погрешность:
DA = A - [A] T 0.5qn-i+1
Погрешность не должна превышать половины единицы разряда, в котором стоит цифра Аi (самая младшая), здесь А - точное значение числа, [А] - приближённое или машинное значение, DA - абсолютная погрешность, разность между точным и приближённым значением числа .
Результат алгебраического сложения А и В имеет вид:
A + B = [A] + [B] + (DA + DB), D(A + B) = DA + DB
Для умножения получим:
AB = [A][B] + [A]DB + [B]DA + DADB
DAB = [A]DB + [B]DA
DADB как величиной второго порядка малости можно пренебречь.
Для деления:

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

Для сложения:
![]()
Для умножения:

Для деления:

Если не выполняется строгий подсчёт погрешности, то пользуются следующими правилами:
| При алгебраическом сложении приближённых чисел в результате необходимо сохранять столько разрядов, сколько их в операнде с наименьшим числом знаков (числа, участвующие в операции, называются операндами) . | |
| При возведении числа в квадрат или в куб в результате необходимо сохранить столько значащих цифр, сколько их в основании степени. | |
| При извлечении квадратного и кубического корней в результате следует сохранить столько цифр, сколько их в подкоренном числе. | |
| При вычислении промежуточных результатов следует сохранять на один разряд больше, чем рекомендуют данные правила. |
Если данные можно брать с произвольной точностью, то для получения результата с n верными цифрами, исходные данные следует брать с таким числом цифр, которое, согласно предыдущим правилам, обеспечивает N+1 цифру в результате.
Контроль операций может быть осуществлён с применением специальных арифметических кодов, идея построения которых базируется на свойствах сравнения по модулю, так как при рассмотрении различных арифметических выражений числа, входящие в эти выражения, можно заменять на другие, сравнимые с ними по выбранному модулю m.
Различают контроль по цифровому модулю и числовому модулю (цифровой и числовой методы контроля).
При числовом методе контрольный код числа А определяется как наименьший положительный остаток от деления А на выбранный модуль m.
При цифровом методе контрольный код числа образуется делением суммы цифр числа на выбранный модуль m.
Пример:
А = 10 mod 3
КА = 1 (mod 3) Числовой модуль
А = 152 mod 3
КА = 1+5+2 = 8 mod 3 =2 (mod 3) Цифровой модуль
Назад | Содержание | Вперед