You are on page 1of 16

9/6/99

2.6.99

025485970 ,

'
)(BOOTH

:
.
,
. ,
.
:

.1
.

?4 , .2
"
, ,
.

.3 :BOOTH
,BOOTH (I
,BOOTH (II
(III .
(IV BOOTH .K=1
,K=2 , (V
.
.1 :
,
"
:
- ,
- ,
. ,
" .

a aaaaaaaaaaa
* b bbbbbbbbb
xxxxxxxxx
)+ xxxxxxxxx
]i : <a>b[i xxxxxxxxx
xxxxxxxxx
p xxxxxxxxxxxxxxxxxxxxxxxx

' 1

n 1
a b a b[i ]2i
i 0

" , :
n 1

B , B b b[i ]2 : B
i

i 0
n
1
2
, , B b [i ]4 i :4
i 0

. } {0,1,2,3 } {0,1.
n/2 , n
, .
,
4:
<a> [i] {0,<a>,2<a>,3<a>}.
, b[i]=0 ,
b[i]=1 a ,
, .

?4 .2
,
" ,
, :

, [i]=0 , .
, [i]=1 a , .
, [i]=2 ,a2 a
, .
, [i]=3 , a3 ,
,a+2a .
, "
,3a 4 .
?
)(,
.

,4 B
, 2 .4
, .

.3
:BOOTH

. :BOOTH
,B
"" ,
.

,b[n-1:0]{0,1}n : :
n 1
. n } ,b[n-1 : 0]{-2k-1,..,+2k+1
k
n 1 n 1

, b[i ]2 b [i ](2 ) : B
i k i

i 0 i 0

, .

" B ,2k
i k
'i (2 ).
,BOOTH ,
, n+1 ,
.
, b b .

: k=1
}) {1,0,1- } {0,1
.
3 " 11 , " -)10
. (1
k=2 }. {1,0,1,2-,2-
:k
, , .k=1
,k=2 .k=3

b ?'b
b ,k ,
.log k k , ,
.

. ?BOOTH

b ?b
> <b n.b[n-1]..b[0] :
> <b .<b>=2<b>-<b> :
:
+ bn-1 bn-2 bn-3 ...... b2 b1 b0 0 <b>2
- 0 bn-1 bn-2 bn-3 ...... b2 b1 b0 ><b

b ) n+1
.(2
(n+1)*2" .K
:K=1
,1 i }.bi-1-bi{-1,0,1
K=1 }b[n-1 : 0]{-2k-1,..,+2k+1
n 1
,( n BOOTH .K=1 k )
, BOOTH ,K=1
n+1 , 1 .1+

?K
"" :
]+b[i+k-2, i-1
] -b[i+k-1, i
,b[i+k-2,i-1]-b[i+k-1,i] {-2k-1,..,2k+1}+ :
K>1 .BOOTH

, :K=2
) i(:
]b[i ]b[i-1
]b[i+1 ]b[i

:
}2*b[i]-2*b[i+1]+b[i-1]-b[i]=b[i]+b[i-1]-2*b[i+1] {-2,..,+2
b ,BOOTH
.
. :
: ?
:" shift.
:

a
10...10010
* b 1
11001011
0
01001011
)+ 00000000 0
]i : <a>b[i 01001011 0
01001011 0
p 0
011010010110011011010101
011
' 2

p. .I
.b . .II
, a .p
.III a b " a b . a
a )
,( a b b
.

"
:

p0
for i=0 to n-1 do:
{
if b[0]=1
pp+a

)shift_left (a , //
)shift_right (b , //
}
'

b
) (
b .

. BOOTH
:K=1
b , ,111..011 : "
,:

+011..1110
- 0011..111
=0100..001 1= -1

," ,BOOTH
) , (n+1
.

, b :

p0
for i=0 to n do: // n-1=n
{
if b[0]0
]pp+a(-1)b[0

)shift_left (a , //
)shift_right (b , //
}

'

,b +1 a ,
, - 1 . a
.
b . b ,
, b BOOTH ?b
, .
.b=1010..10 :

+1010..1010
- 0101..0101
=1111..1111 1= -1

, .

. BOOTH :K=2
n 1
) n b
2
b (.
b ) ,
"( , .

,b[n-1] {-2,-1,0,+1,+2}n >.<a><b


,4 :
n 1

. a b a b[i]4
i

i 0

>]?a>b[i
b[i]=0 )(. .I
b[i]=1 ) a(. .II
.III b[i]=2 a )(.
.IV b[i]=-1.a>=-[0 a]=[1 a]+1>- :
b[i]=-2.a>=-[0 a 0]=[1 a 1]+1>- : .V

:
? )
n 2 , ?(.
, a .

a 101100101
, 2-,1 * b
(2-)210

) a>b[0]> : 0 ).n+2
]i : <a>b[i 00 00 .. 00 00
00
xxxxxxxxx

xxxxxxxxx
+
xxxxxxxxx

xxxxxxxxx
p xxxxxxxxxxxxxxxxxxxxxxxx

' 3

,
.4

:
a b BOOTH ,unsigned
. a , b ,signed . ,
, ,2n
].[22n-1...,0,1

:
2n , 2n
, .a , 2n
,
. 22n

a 101100101
, 2-,1 * b (2-)210
) ).n+2

0S0
S n-1
0Sn-2 ......0S
001 00
xxxxxxxxx
xxxxxxxxx

xxxxxxxxx

xxxxxxxxx

p xxxxxxxxxxxxxxxxxxxxxxxxx

' 4

, "
. ,
, " " , .
S0 ,Sn-2
?Sn-1
?
, Sn-1 ) ] b[n-1 , ]S[i
] b[i , ( , .

:
,
, .
?
," .
: , + ,
.
2n
: ,mod 2 0
, 2n
, .

:
, j <a>bj a 'j b.
, j j+32n+1 .
" ) (:
j . .1
"" j , .2
n+1
, 2 2n .

:
, j
.j

:
j > <a , , 2 -1 :bj=2
n

j= j+32n+1 (2n-1)2+32n+1 = 2n+1 (1+3)-2=2n+1 (4)-2=2n+3-2


n+3 . j

:
j , > <a , , 2 -1 :bj=-2
n

j= j+32n+1 (2n-1)(-2)+32n+1 = 2n+1 (-1+3)+2=2n+1 (2)+2=2n+2+2


n+3 . j

, j 2n+3-2 2n+2+2 , j
, .

:

2n ,:
n 1

4
j 0
i
j
2 n1 (mod ulo 2 2 n ) a b

jj= j+32n+1 :
n1 n1

i 4 j 2 n1 ( j 4 j 3 2 n1 4 j ) 2 n1
j 0 j 0

n1

> <a> <b .j ( 4


j 0
j
j
, )
n 1
4n 1
: (4
j 0
j
)
4 1
,
n1
4n 1 n 1

j 0
i 4 j 2 n1 a b 3 2 n1
4 1
2
a b 2 n 1 (4 n 1) 2 n 1 a b 2 n 1 4 n

2n+1 4n 2n .

n 1
, n ) 2n n+1 2
2n= n+1 2n= n+1+1 . ,
(:
n+1+n+1+ 2n+2+
2 4 =2 2 =2
n+1 n n+1 2n
=2
22n , 2n ,
.

: , j ,"
.j= <1not(Sj)X>+Sj
: 'j )
) 32n+1 , .

Sj = 1 if bj < 0
Sj = 0 if bj Otherwise

X {0,1}n+1:
X = 0n+1 if bj=0
X = 0a if bj=1
X = a0 if bj=2
X = 1a if bj=-1
X = a1 if bj=-2

j "" ,
.

: " ,
"" .j

,Sj = 0 .X = 0n+1 bj=0. .1


j= j+32 = <a>bj +32 = 32
n+1 n+1 n+1

: j= <1 not(Sj)X>+Sj
n+2 n+1 n )(n+1 bits 0
1 1 0 0 . . . . . . . . . . . . .0 0
.
,Sj = 0 .X = 0a bj=1. .2
j= j+32 = <a>bj +32 = <a> + 32
n+1 n+1 n+1

: j= <1 not(Sj)X>+Sj
n+2 n+1 n n-1 )(n bits 0
1 1 0 ........a.........
.

,Sj = 0 .X = a0 bj=2. .3
j= j+32n+1 = <a>bj +32n+1 = 2<a> + 32n+1
: j= <1 not(Sj)X>+Sj
n+2 n+1 n )(n bits 0
1
1 1 ........a......... 0
.
,Sj = 1 bj= -1. .X = 1a .4
= j= j+32 = <a>bj +32 = -<a> + 32n+1 = -[1a] + 32n+1
n+1 n+1

-2n + <a> + 1 + 2n+1 + 2n+2 = <a> + 1 + 2n+ 2n+2


, 2"
.

: j= <1 not(Sj)X>+Sj
n+2 n+1 n n-1 )(n bits 0
1 0 1 . . . . . . . . a . . . . . . . . .
1
.

,Sj = 1 bj= -2. .X = a1 .5


j= j+32 = <a>bj +32
n+1 n+1
= = -2<a> + 32 = -<a 0>+2 + 2
n+1 n+1 n+2

< a 1> + 1 + 2n+2.


<a>2- <a 0>- n+1,
> a 0>- 2n+1 2 > ,<a 0 > a
.1> + 1
: j= <1 not(Sj)X>+Sj
n+2 n+1 n )(n bits 1 0
1 0 . . . . . . . . a . . . . . . . . . 1
1
.

)
( j :
) > , <1 not(Sj)X ~S )( not(S

a
n+1 b
1 ) ).n+2
~
S0 1 n X0 0
S1 1 n
~
X1 0 0S0
S2 1 n
~
X2 0 00
...... 0S1
~
Sn-1 1
n Xn-1 0Sn-2 ...... 00 00
0 S n-1 = 0

' 5

2n+1 ?
""
, , .2n+1
, .
:
n+1 n+2 ,
:
1
~
+ S0 1
~
S0 S0 S0

S0~=S0+1 ,~S0 S0~=S0+1 ,~S0


.
~ ~
, ,( 1S0)+1 , S0 S0 S0
:
a
b
.n+2) )
~
S0 S0 S0 n X0 0
S1 1 n
~
X1 0 0S0
S2 1 n
~
X2 0 00
...... 0S1
~
Sn-1 1
n Xn-1 0Sn-2 ...... 00 00
0 S n-1 = 0

6 '
:

" b
.BOOTH
,BOOTH
K , ,
b BOOTH .K=1
,K=1 ,
) BOOTH
BOOTH ,
(.
.K=2 , ,
: ,
. , ,"
, ,
, ,
2n .
"
"" .
, K=1 ,
, ,
.

You might also like