ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2024
Просмотров: 104
Скачиваний: 1
S(4+*)A—> S(V++)l ,
i, (¥+*)**'+pi = р м + S(w)i, (¥<-?)'i ,
( i - k, k - l , . . . , 2) - pK- 2)i
S(v*+h,('£+'k)?+pi. - S cv+ ty/tf+ yjj ,
Если младшие части слагаемых хранить в памяти мавшны
Л положительный 'знаком, то система (4.9') примет вид
о,ч>1+ о,у-+pt -рм +о,0*+у)?1
Ц=к, к-ц..., 2- |
рк=о)- |
|
|
S v . f i + S ^ p f i ' + p i = 2 •- S f v + ^ i . C t f + ^ r j |
|||
0 , ( ^ + r ) r + p i “ p n + o . Cvf+ y) - , |
|
||
( i = k , |
2; |
|
(4.10) |
pi = |
|
( ' i <• y ) i . |
|
|
то получим ал |
||
Если не учитывать циклический перенос, |
|||
горитм с погрешностью ^ |
2 |
: |
|
0 , v i + О, У / f P i - р ы + 0 , ( * + у ) 1 , |
|
||
( t'k , k-i, |
2; |
рк = 0); |
(4.II) |
S v t . f i + |
+ Pi - |
C ^ + y ) i • |
Рассмотрим случай, когда в памяти машины хранятся длинные числа, в целом представленные в дополнительных кодах. Сложе ние таких чисел можно реализовать следующей последовательноотью:
О, Ч>1 + 0 ,ri + Pi |
= |
+ о, ( iffY)l , |
|
( i - k , k-i, • ••, |
2 ; |
р к « 0 ) ; |
(4 *12) |
Svt, 4>L■+ S%, fi f pi = S( t f , c |
V l . |
Здесь младшие части длинных чисел можно хранить с по ложительным знаком, т.к. это не влияет на процесс сложения. Системы (4 . II ), (4.12) одинаковы, однако для чисел, представ ленных в дополнительных кодах, алгоритм сложения ошибки не
/
- 99 -
вносит.
Вычитание чисел, превышающих длину разрядной сетки УВМ, через сложение в кодах можно представить как
q > _ Y = М + М - S (*.+}, £ (Ч-ЧгУс 2 ~ *
Составим итерационные последовательности вычитания для длинных чисел, представленных в памяти в прямых кодах. Если' код представления чисел в АУ обратный, то набор алгоритмов можно составлять по итерационным последовательностям:
[Sv*, fi]o + Г ~ ^ ,У г ]0 + p L ~ p n + 0, (<£-¥)* |
(4.13,а) |
||
( i * k , |
2 ; р к ~ 0 ) ; |
|
|
fSft.V iJo + f-S fa .tiJ, + рА= 2 i S ( w ) L( - У) Г; |
4’13 ’6) |
||
S(v-*)i —> Sc*-*)i |
|
||
|
+ p i « p t -4 |
+ S (* -* )< ,(^ V ')i,. |
|
(L=k,k-ir .., 2 ; |
p * * Z ) } |
(4.13 д) |
Г $ (« М *,(¥ -^Г ]о +Pi = S(4-*h, ( tf-V 'Ji •
Последовательности (4 .13,а) и (4,13,6) |
можно реализовать |
||||
так же, как и (4.4) |
и (4,5), |
если предварительно сформировать |
|||
обратные коды слов |
вычитаемого |
|
|
|
|
|
Y j о ) |
( I* |
k, k - i , »••) 2,1} . |
|
|
Последовательности |
(4 .1 3 ,с) |
и (4.13,д) соответствуют (4.6) |
я |
||
(4 .7), а поэтому программы их будут совпадать. |
< |
|
|||
Заменив в системе (4.13) выражения (4.13,с) и (4,13,д) |
|||||
на последовательность |
|
|
|
j |
|
SCf-'P), |
—* S c’f-'pji. I |
( |
2 ) , |
|
|
|
|
|
о - Ки |
|
|
получим алгоритм с вносимой погрешностью * ^ |
, |
|
|||
Если вычитание длинных чисел проводится в дополнитель |
|||||
ных кодах, то реализуются последовательности |
|
|
|||
- [ S f l l K ]„ + z * + [ - S n jK ] o + -B*-p*-l + o l ( & y ) K |
! |
( Zy - отрицание Z^) •
- 100 -
[ S ftV iJ o +[-S>h,Yi]o + Pi*Pi-t +€),(<£+r)i
k - * , . . . , 2 ) ;
[ S v t , » f t ] . + [ - S ^ r j e + p 1, S ( Y - 4 ' H , |
|
||
S ( V - f ) i —> S f e - ^ J o |
|
|
|
* |
|
|
|
O ' ~ к , |
|
2 ). |
|
Для длинных чисел, |
представленных в ячейках памяти ма |
||
шины в обратных кодах |
|
|
|
S * . ^ + Г“ ^ Л ' ] о + p t - |
P c - t + O , ( Ч ~ Ч ') * Р f |
(4.14) |
|
k-t,..., |
2; |
р к ~ 0 ) } |
|
Siv-vjt -* ‘S(4-*)i ,
S c v +jt, O |
f - t y i + P i « р б -i + S ( ( f - 4 ’) 1/ |
, |
|
(Z - k , k-i.,. . . , 2 j |
|
|
|
5 (v-vj A / |
Tj Г + p t - S ( |
C^ - ‘i'J [ . |
|
Если младшие части уменьшаемого и вычитаемого хранят* ся в памяти машины без знаков, то система (4 .14) примет вид
ОМ + 0 ,[{Рс]о +pc~pL-i + 0,('£-i')*i ,
( L~k, k - i , . . . , 2 , рАс-О );
- IOI -
S f i i, +i [-S't'iyVi'jo+Pi ^ 2 f S ( * f - ^ u tf, -C'p) Г,
о , ( У ~ У Г + p i = pi-*-+o , ( # ~ r ) i у
(4.15)
( £ - f c ; k - i , . . . , 2 ; p « = z ) ;
+ pi - •
Формируя в системах (4.14) и (4.15) для каждого олова вычитаемого его обратный код, эти последовательности можно реализовать так же, как и системы (4.9) и (4.10) соответствен но.
Бели в системе (4.15) не учитывать циклический переноо то получим алгоритм о вносимой погрешностью <» 2 ** , при этом (4.15) примет вид
О, |
+ 0 ,[^ l]o fP c =рi-i +0, (<£-¥)L, |
|||
|
( ь ~ к, |
2 ) |
рк = 0 ) ; |
(4Л 6) |
< 5 ^ , ^ |
+ |
о + Pi - |
S ( tf-4,)j., № |
- ¥ ) 1 . |
Для длинных чисел, представленных в ячейках памяти ма шины в дополнительных кодах, вычитание их можно осуществить
че£рз последовательности |
|
|
О, ft + 0> [ % ] 0 -t-pL=*pi-i+0,(*£~'>ijl j |
(4.1?) |
|
< L ~ K k - i , , . . , 2 ; |
= |
|
$ 4 i , |
i+l[- 5t i ,4*Je + pi * S(jr-*j1;(if- 4 ? )I . |
|||
Система (4.17) может быть реализована, как (4 .1 2 ), ес- |
||||
#и олова |
вычитаемого инвертировать и |
рк |
принять равным |
|
2 К!1 |
.Вносимая ошибка такого алгоритма равна нулю. Если |
|||
принять, |
что |
рк= 0, то система (4.17) |
будет |
соответствовать |
(4 .1 6 ), |
ошибка которой ^ 2 ~**, |
|
|
Умножение длинных чисел будем осуществлять путём nepe-f
- г а з - множения юс отдельных слов с последующим сложением полученных
частичных произведений. |
|
|
|
|
|
|
|
|
|
||||
|
Для длинных чисел |
|
• |
|
^ |
|
|
|
i |
||||
|
|
|
i."l |
|
|
|
y |
- |
Z |
^ |
2-j" . |
|
j |
|
|
|
|
|
|
|
|
i=t |
|
отдельных слов |
\ |
||
представленных в прямых кодах, |
произведение |
||||||||||||
( * * * ) ( % ? |
* |
) |
- |
|
( |
|
m |
|
^ |
2 |
|||
|
Произведение отдельного |
слова |
|
на длинное Число |
j |
||||||||
Y* можно найти из йгерационной |
носледоватёльности |
| |
|||||||||||
( % 2 ~ in)(4 'i |
z * |
) + Р а ч , 2 - <С+* " ’ |
- |
|
|
i |
|||||||
|
- |
|
|
|
|
П « . л |
|
|
, |
|
(4.18) |
j |
|
|
|
|
|
|
|
|
|
|
|
||||
|
Q - k , k 4 , . . . , 2 , U |
Р ( н к ) - 0 ) . |
|
|
|||||||||
йлеоь |
'<■ - |
множитель, |
a |
T |
-множимое. |
|
|
|
|||||
|
Реализация данной последовательности даст |
|
|
||||||||||
№ 2 -“ j T f - f U - ' V Z |
|
|
2 |
|
|
|
|
||||||
илиИ |
|
|
|
|
|
i " 1 |
|
|
|
|
|
|
|
|
( f |
|
Z |
|
|
П |
« |
* |
Л |
2 ' |
^ |
|
|
Для |
|
j =50 |
|
|
|
|
|
|
|
|
|
||
t = К |
имеем |
|
|
|
|
|
|
2К |
|
|
|||
( |
* |
O |
|
к |
|
v |
|
|
- |
П |
* |
||
|
|
|
|
|
|
5 |
|||||||
первое длинное частичное произведение. |
|
f ’ * |
|
|
|||||||||
|
Обозначим через |
«Д1+1-=- |
|
f i t |
2'^* |
сущу |
длинных |
|
|||||
частичных произведений |
|
|
|
* |
|
|
|
|
|
||||
Тогда |
|
% Y - > |
«Лг- i T , |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
«И |
e |
3u*t |
г |
*fiY . |
|
|
|
|
(4.18) |
|
||
|
|
|
|
|
|
|