Page 14 - М.Ю. Барышникова, А.Ф. Деон, А.В. Силантьева - СКОРОСТНЫЕ СВОЙСТВА АЛГОРИТМОВ СЛОЖЕНИЯ И ВЫЧИТАНИЯ ЦЕЛЫХ ЧИСЕЛ ПРОИЗВОЛЬНОГО РАЗМЕРА

Анализ этого этапа совпадает с анализом второго этапа. В итоге
получаем:
W
+
4
min
= 9;
W
+
4
max
= 9 +
BS
4
.
Если на четвертом этапе не выполняется сложение, то следует
последний, пятый, этап по инструкции выбора:
if( a[na-1] == ’-’ && b[nb-1] == ’+’ ) // a <0 0, b >= 0
return nc = BinarySubtract( c, b, pnb, a, pna );// c = b - a
Анализ пятого этапа совпадает с анализом второго или четвертого
этапа. В итоге получаем:
W
+
5
min
= 9;
W
+
5
max
= 9 +
BS
5
.
В целом минимальное количество операций на выполнение функ-
ции сложения целых чисел произвольного размера определяется на
втором этапе:
W
+
min
=
W
+
1
min
+
W
+
1
+
W
+
2
min
= 3 + 9 +
BA
2
=
= 3 + 9 +
BA
min
= 3 + 9 + 7 + 12
n
= 19 + 12
n.
Максимальное количество операций будет в случае, если проверки
условий приведут к последнему пятому этапу:
W
+
max
=
W
+
1
+
W
+
2
.
условие
+
W
+
3
.
условие
+
W
+
4
.
условие
+
W
+
5
max
=
= 3 + 9 +
BA
2
= 3 + 9 + 9 + 9 + 9 +
BS
5
=
= 39 +
BS
max
= 39 + 25
n
1
= 38 + 25
n.
Вычитание произвольных целых чисел.
В операции вычитания
могут принимать участие положительные и отрицательные числа. Не-
посредственно операция обозначается явно как ‘–‘. Знаки чисел скры-
ты в старших байтах соответствующих массивов. В табл. 2 показа-
но, какую следует производить операцию над беззнаковыми числами
c
=
a
b
,
если известны знаки чисел
a
и
b
.
Таблица 2
Выполняемые действия при вычитании в зависимости от знаков операндов
a
b
Беззнаковая операция
+
+
c
=
a
b
+
c
=
a
+
b
+
c
=
(
b
+
a
)
c
=
a
b
52
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012