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

Скоростные свойства функции
BinaryAdd
( )
определяются количе-
ством операций над целыми числами внутри тела функции. На пер-
вом этапе выполняются инструкции
int na
=
pna
;
int nb
=
pnb
;
m
=
BinaryAlign
2(
a, na, b, nb
)
;
pna
=
m
;
pnb
=
m
;
unsigned char
tranzit
= 0. Общее количество операций на данном этапе можно оце-
нить как
W
BinaryAdd
1
min
= 2 + 2 +
A
min
+ 2 + 2 = 4 + 5 + 4 = 13;
W
BinaryAdd
1
max
= 2 + 2 +
A
max
+ 2 + 2 = 4 + 1 + 5
n
+ 4 = 9 + 5
n.
На втором этапе выполняется инструкция цикла:
Int m1=m-1;
for( int i = 0; i < m1; i++ ) //цикл сложения байт
{
unsigned char d = a[i] + b[i] + tranzit;
if( d < 10 ) { c[i] = d; tranzit = 0; }
else { c[i] = d - 10; tranzit = 1; }
}
До цикла выполняется инструкция
int m
1
=
m
1
,
для которой тре-
буются две операции. В заголовке цикла выполняется одна инструкция
int i
= 0
.
На каждой итерации выполняется одна операция проверки
условия
i < m
1
и две операции на увеличение и запоминание индекса
i
+ +
.
Кроме того, в каждой итерации затрачивается пять операций
на реализацию поразрядного сложения
unsigned char
d
=
a
[
i
]
+
b
[
i
]
+
+
transit
.
Инструкция альтернативного условия
if
(
d <
10)
{
c
[
i
]
=
d
;
tranzit
= 0; }
else
{
c
[
i
]
=
d
10
;
tranzit
= 1; } занимает одну опера-
цию на проверку условия. При истинности условия выполняются три
операции на реализацию
c
[
i
]
=
d
;
tranzit =
0.
При ложном условии
выполняются четыре операции на вычисление
c
[
i
]
=
d
10
;
tranzit
= 1.
Таким образом, на втором этапе выполняется следующее количество
операций:
W
BinaryAdd
2
min
= 3 +
m
2
X
i
=0
(3
+ 5 + 1 + 3) = 3 + 12(
m
1)
= 12
m
9;
W
BinaryAdd
2
max
= 3 +
m
2
X
i
=0
(3
+ 5 + 1 + 4) = 3 + 13(
m
1)
= 13
m
10
.
На третьем этапе выполняется инструкция альтернативного усло-
вия:
if( tranzit == 0 ) c[m1] = 43; //знак +
else { c[m1] = 1; c[m++] = 43; } //1 в новом старшем разряде
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
45