background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Dzielenie sekwencyjne 

 
dzielenie całkowite 
 
Iloraz Q (quotient) i reszta R (remainder) z dzielenia  

dzielnej X (dividend) przez dzielnik D

0 (divisor),  

 
to liczby Q oraz R takie,  e 

 

X = Q

D + R,     |R| < |D| 

 

• 

s  2 rozwi zania (Q

1

,R

1

) oraz (Q

2

,R

2

) takie,  e  X – R

i

= Q

i

D, przy tym  

 

|R

1

–R

2

| = |D| ,  –|D|< R

1

,   R

2

< |D| oraz |Q

1

–Q

2

| = 1  

 
X

R > 0 – dzielenie znakowane (signed division) – znak reszty = znak dzielnej 

R > 0 – dzielenie modularne (modulus division) – znak reszty dodatni  

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Przybli enia ilorazu (1) 

 
dzielenie dowolne 

 
Iloraz ułamkowy Q mo na obliczy  z dowoln  dokładno ci  

ε

 

 

=

+

=

D

R

D

D

R

Q

D

X

,

m

i

n

,

ε

ε

 

 
 
W jednorodnym systemie stałobazowym o podstawie 

β

 i ze zbiorem cyfr D, 

iloraz X/D mo na obliczy  z dokładno ci  nie gorsz  ni  

β

–r

 jako: 

 

 

D

<

=

=

=

+

i

r

i

s

r

i

s

i

s

r

s

q

Q

D

X

q

q

q

q

Q

D

X

,

,

}

,

.

.

.

,

,

{

)

(

1

0

β

β

β

β

 

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–2a 

Przybli enia ilorazu (2) 

Pierwszym przybli eniem ilorazu jest 

s

s

s

s

q

Q

q

β

β

=

=

1

,

}

0

,...,

0

,

{

 takie,  e 

 

D

D

q

X

D

q

D

s

s

s

s

s

s

1

)

1

(

+

<

+

<

β

β

β

β

,  gdy X D > 0 

lub 

D

D

q

X

D

q

D

s

s

s

s

s

s

1

)

1

(

+

>

+

>

β

β

β

β

,  gdy X D < 0 

czyli 

 

D

D

q

X

s

s

s

β

β

<

sk d wynika numer i warto  wagi 

β

s

  najwy szej cyfry ilorazu oraz 

 

D

D

q

X

R

s

s

s

β

β

<

=

1

 

Dokładniejsze przybli enie to 

1

1

1

,

2

,

1

}

0

,...,

,

{

+

=

=

s

s

s

s

s

s

q

Q

Q

q

q

β

β

 takie,  e 

 

D

D

q

R

R

s

s

s

1

1

1

1

2

<

=

β

β

 
Maj c wi c przybli enie z dokładno ci  do 

β

sp

 i bie

c  reszt , mo na 

obliczy  przybli enie z dokładno ci  do 

β

sp–1

  

 

D

D

q

R

R

p

s

p

s

p

s

p

p

+

<

=

β

β

)

(

)

1

(

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–2b 

Przybli enia ilorazu (3) 

 
Po skalowaniu reszt R

#

 przez pot g  podstawy odpowiadaj c  indeksowi reszty 

otrzymamy nierówno  parametryczn  
 

 

D

D

q

r

r

p

s

p

p

<

=

+

)

(

)

1

(

β

 
której odpowiadaj  podane ni ej wykresy dzielenia 

q

s–i 

= 0 

q

s–i 

= 1 

r

i+1

 

β

r

i

 

q

s–i 

= 0 

q

s–i 

= 1 

q

s–i 

= 0 

q

s–i 

= 1 

q

s–i 

= 0 

q

s–i 

= 1 

–r

i+1

 

β

r

i

 

r

#

0, D>0 

r

#

0, D<0 

r

#

<0, D>0 

r

#

<0, D<0 

 

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–2c 

Przybli enia ilorazu w systemie naturalnym (1) 

 
Pierwszym przybli eniem ilorazu jest 

s

s

s

s

q

Q

q

β

β

=

=

1

,

}

0

,...,

0

,

{

 takie,  e 

 

D

D

q

X

D

q

D

s

s

s

s

s

s

1

)

1

(

+

<

+

<

β

β

β

β

 
sk d wynika numer i warto  wagi 

β

s

  najwy szej cyfry ilorazu oraz 

 

 

D

D

q

X

R

s

s

s

β

β

<

=

1

0

 

 

gdzie q

s

 – liczba całkowita (dodatnia),  q

s

{0, 1, 2, … ,

β

– 1 } 

 
 
Dokładniejsze przybli enie to 

1

1

1

,

2

,

1

}

0

,...,

,

{

+

=

=

s

s

s

s

s

s

q

Q

Q

q

q

β

β

 takie,  e 

 

D

q

D

Q

X

R

D

q

s

s

s

s

s

1

1

1

,

1

1

1

)

1

(

+

<

=

β

β

 

D

D

q

R

R

s

s

s

1

1

1

1

2

0

<

=

β

β

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–2d 

Przybli enia ilorazu w systemie naturalnym (2) 

 
Dokładniejsze przybli enie to 

1

1

1

,

2

,

1

}

0

,...,

,

{

+

=

=

s

s

s

s

s

s

q

Q

Q

q

q

β

β

 takie,  e 

 

D

q

D

Q

X

R

D

q

s

s

s

s

s

1

1

1

,

1

1

1

)

1

(

+

<

=

β

β

 

D

D

q

R

R

s

s

s

1

1

1

1

2

0

<

=

β

β

 

 

 
Kolejnymi przybli eniami ilorazu s  zatem  

i

s

i

s

i

s

i

s

q

Q

Q

+

+

=

β

,

1

,

 takie,  e 

 

D

q

D

Q

X

R

D

q

i

s

i

s

i

s

i

i

s

i

s

+

<

=

β

β

)

1

(

,

 

D

D

q

R

R

i

s

i

s

i

s

i

i

+

<

=

β

β

1

0

 

 

 
co po skalowaniu (

1

=

s

i

i

i

R

r

β

) prowadzi do nierówno ci parametrycznej 

 

 

D

D

q

r

r

i

s

i

i

<

=

+

β

1

0

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Zbie no  procedury dzielenia 

Aby w standardowym systemie stałobazowym mo liwe było  

obliczenie lepszego przybli enia ilorazu (kolejnej cyfry)  
na podstawie przybli enia poprzedniego,  
czyli aby istniało 

1

1

1

,

2

,

+

=

s

s

s

s

q

Q

Q

β

 takie,  e 

 

i

s

i

s

Q

D

X

Q

D

X

,

1

,

<

+

,  

to kolejna reszta musi spełnia  warunek  

 

D

D

q

r

r

p

s

p

p

<

=

+

)

(

)

1

(

β

Je li obliczyliby my 

D

r

p

+

)

1

(

, to kolejna nierówno   

 

D

D

q

r

r

p

s

p

p

<

=

+

+

+

)

1

(

)

1

(

)

2

(

β

nie ma rozwi zania w zbiorze dozwolonych warto ci cyfr (

β

<

#

q

). 

Na przykład przy dodatnich r

#

 oraz D, je li 

δ

+

=

+

D

r

p

)

1

(

, to 

 

D

D

D

q

D

q

D

r

p

s

p

s

p

>

+

+

=

+

=

+

+

+

βδ

βδ

β

δ

β

)

(

)

(

)

1

(

)

1

(

)

2

(

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Procedura dzielenia sekwencyjnego w systemie naturalnym 

Parametryczne (X>0, D>0) 

 

D

q

r

r

i

s

i

i

+

=

β

1

,      

D

r

i

<

0

,      

X

r

1

0

=

β

 

 
Warunki zbie

Ŝ

no

ś

ci procedury 

• 

D

D

q

r

q

D

r

i

s

i

i

s

i

<

<

<

β

β

0

:

)

0

(

 

• 

D

D

q

r

q

D

r

i

s

i

i

s

i

<

β

β

:

)

0

(

 

 

(3) 

(3) 

q

s–i 

= 0 

q

s

= 1 

r

i+1

 

2r

i

 

2D 

D 

D 

(0,0) 

q

s–i 

= 0 

q

s–i 

= 1 

r

i+1

 

2r

i

 

2D 

D 

D 

(0,0) 

 

...(2) 

...(2) 

(2) 

(2) 

(1) 

(1) 

a) 

b) 

 

Wykres dzielenia sekwencyjnego w systemie dwójkowym  a) wyznaczanie 

cyfry ilorazu (1) i reszty cz ciowej (2), b) skalowanie reszty cz ciowej (3) 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–4a 

Zbie no  dzielenia w systemie naturalnym (1) 

 

r

i+1

 

2r

i+1

 

2D 

D 

(0,0) 

q

s–i 

= 0 

q

s–i 

= 1 

r

i+1

 

2r

i

 

2D 

D 

D 

(0,0) 

r

i

<

D 

0

<

β 

(zbie

Ŝ

ne) 

r

i

q=

β

–1 

rozbie

Ŝ

ne 

 

q

s–i 

= 0 

q

s–i 

= 1 

r

i+2

 

β

= 2 

r

i+2 

 r

i+1

 

D 

D 

 

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–4b 

Zbie no  dzielenia w systemie naturalnym (2) 

 

4r

i+1

 

4D 

2D 

(0,0) 

q

s–i 

= 0 

q

s–i 

= 3 

r

i+1

 

4r

i

 

4D 

2D 

D 

(0,0) 

r

i

<

D 

0

<

β 

(zbie

Ŝ

ne) 

r

i

q=

β

–1 

rozbie

Ŝ

ne 

 

q

s–i 

= 0 

q

s–i 

= 3 

r

i+2

 

β

= 4 

r

i+2 

 r

i+1

 

 

 

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Dzielenie w systemach uzupełnieniowych 

• 

dzielna, dzielnik i iloraz mog  by  liczbami ujemnymi 

• 

liczba w systemie uzupełnieniowym – liczba w systemie stałobazowym 
z niestandardowym zbiorem cyfr na wiod cej pozycji 

 

=

=

+

=

+

=

2

1

1

2

1

1

1

]

)]

(

[

|

|

k

m

i

i

i

k

k

k

m

i

i

i

k

k

k

U

x

d

x

x

x

β

β

β

β

βϕ

β

X

gdzie 

))

1

2

(

sgn

1

(

)

(

1

2

1

1

+

+

=

β

ϕ

k

k

x

x

 – funkcja znaku liczby, 

}

1

,...,

1

,

0

,

1

,...,

{

)

(

2

1

2

1

1

1

1

1

=

=

β

β

βϕ

k

k

k

k

x

x

d

D

 

 
W

NIOSKI

• 

je li X D < 0, to warto  pierwszej cyfry ilorazu jest ujemna  

• 

wszystkie pozostałe cyfry ilorazu maj  warto ci dodatnie  

• 

aby spełniony był warunek zbie no ci dzielenia |R|<|D|,  

znak ka dej reszty musi by  zgodny ze znakiem dzielnika (R D > 0) 

• 

pierwsza wielokrotno  dzielnika musi by  taka aby |R|<|D| oraz R D > 0 

(je

ś

li byłoby R D < 0, odj

ę

cie ka

Ŝ

dej dodatniej wielokrotno

ś

ci 

prowadziłoby, wskutek skalowania, do naruszenia warunku |R|<|D|)

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Standaryzacja ilorazu w systemach uzupełnieniowych (1) 

 
iloraz mo na łatwo skalowa  do warto ci ułamkowej  

 

m

F

m

F

Q

D

X

Q

D

X

Q

β

β

=

=

<

=

1

 

ułamek w systemie uzupełnieniowym ma zawsze posta  (

1

β

−1

”): 

 

0

  

   

0

  

   

,...}

,

,

,

1

{

,...}

,

,

,

0

{

3

2

1

3

2

1

<

>

=

F

F

F

Q

gdy

Q

gdy

q

q

q

q

q

q

Q

 

 
po standaryzacji ilorazu: 

• 

je li X D > 0, to  q

0

= 0 oraz  r

1

X

β

m

−0⋅

X

β

m

 

• 

je li X D < 0, to  q

0

=

1

 oraz  r

1

X

β

m

−(−1)⋅

X

β

m

+

D 

• 

warunkiem poprawno ci jest  r

i

D

≥0

 

• 

wszystkie kolejne cyfry ilorazu q

i

 reprezentuj  warto ci dodatnie,  

a nast pn  reszt  jest  r

i+1

=

β

r

i

q

i

D ,   r

i+1

D

≥0

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–6a 

Standaryzacja ilorazu w systemach uzupełnieniowych (2) 

Je li X D < 0, to 

1

<

=

D

X

Q

m

F

β

, ale tak e 

 

1

1

0

<

+

=

+

<

D

D

X

D

X

m

m

β

β

 

wi c po dodaniu dzielnika do przeskalowanej dzielnej  

znak pierwszej reszty jest taki sam jak znak dzielnika. 

Zatem wszystkie kolejne cyfry ilorazu s  dodatnie i spełniaj  nierówno ci 

|r

i+1

=

β

r

i

q

i

| < | ,   r

i+1

D

≥0 

Algorytm 

1. Przeskaluj dzieln  X, tak aby  |r

0

=

β

m

 X D| < 1. 

2. Je li X D > 0, to  q

0

= 0  oraz  r

1

r

0

0

r

0

 

3. Je li X D < 0, to  q

0

=

1

 oraz  r

1

r

0

1

r

0

D  

4. Obliczaj kolejno |r

i+1

=

β

r

i

q

i

| < | ,   r

i+1

D

≥0 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–6b 

Standaryzacja ilorazu w dwójkowych systemach uzupełnieniowych  

 

Je li X D < 0, to 

1

2

<

=

D

X

Q

m

F

, ale tak e 

 

1

2

1

2

0

<

+

=

+

<

D

D

X

D

X

m

m

 

wi c po dodaniu dzielnika do przeskalowanej dzielnej  

znak pierwszej reszty jest taki sam jak znak dzielnika. 

 

Wszystkie kolejne cyfry ilorazu s  dodatnie, znak ka dej kolejnej reszty musi 

by  taki jak znak dzielnika (r

i+1

D

≥0)

, przy tym  

 

je li  |r

i+1

=

2

r

i

| < | ,   t o   q

i

= 1

 

 

je li  |r

i+1

=

2

r

i

| > | ,   t o   q

i

= 0  oraz  r

i+1

=

2

r

i

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Dzielenie w systemie uzupełnieniowym (przykład – U10) 

!!   standaryzacja ilorazu – skalowanie dzielnej tak, aby |X

β

m

|

<|

D

 

X  =  7,  6  5  4

 

:   

3  1,  2  =  

 

 

X  =  7  6  5,  4

 

:   

6,  8  8  =  

 

− 

2,  3  6  6  : 

+

  3  1,  2   

 

 

 

 

− 

2  3  6,  6  : 

  3,  1  2   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9,  2  4  8   

 

 

 

X D < 0   

 

 

 

 

 

0,  7  5  1   

 

 

 

X D > 0 

 

9  7  6.  5  4

 

 

:  3  1,  2   

q

0

=−

1   

 

 

9  7.  6  5  4

 

 

:  6,  8  8   

q

0

=

0  3  1,  2   

 

 

 

 

 

 

 

 

 

 

 

 

 

0   

 

 

 

 

 

 

 

 

0  0  7  7  4   

 

 

 

 

 

q

1

=

2   

 

 

9  7  6  5  4   

 

 

 

 

 

q

1

=

  0  0  6  2  4   

 

 

 

 

 

 

 

 

0  2  1  8  4  *   

 

 

 

 

 

 

 

0  1  5  0  0   

 

 

 

 

q

2

=

4   

 

 

 

9  8  3  8  0   

 

 

 

 

q

2

=

 

  0  1  2  4  8   

 

 

 

 

 

 

 

  + 

0  1  5  6  0  *

 

 

 

 

 

 

 

 

 

0  2  5  2  0   

 

 

 

q

3

=

8   

 

 

 

 

9  9  4  0  0   

 

 

 

q

3

=

 

 

  0  2  4  9  6   

 

 

 

 

 

 

 

 

0  0  3  1  2   

 

 

 

 

 

 

 

 

 

 

 

…  

 

 

 

 

 

 

 

 

 

 

 

 

 

…  

 

 

 

 

 

=

  9,  2  4  8  … 

×

  10 

1  

 

 

 

 

 

=

  0,  7  5  1  … 

×

  10 

2  

 

 

 
 

*

)

 zamiast –qD mo

Ŝ

na wykona

ć

 q(–D

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Dzielenie odtwarzaj ce (restytucyjne) 

standaryzacja ilorazu – skalowanie dzielnej, tak aby |X

2

m

|

<|

D

 

1

0

   

0

0

gdy  

  

gdy  

  

2

2

0

0

0

=

=

<

>

+

=

q

q

D

X

D

X

D

X

X

r

m

m

 

 
 

D

q

r

r

i

i

i

=

1

2

,   

0

   

|,

|

|

|

>

<

D

r

D

r

i

i

,   = 1,2,... 

 

 

<

=

.

|

|

|

2

|

|,

|

|

2

|

   

gdy

gdy

   

,

1

,

0

1

1

D

r

D

r

q

i

i

i

 

 
metody dzielenia restytucyjnego lub odtwarzaj

ą

cego (restoring division

• 

odj cie dzielnika D od tymczasowej reszty cz ciowej 2r

i

 

→ 

je li 

0

)

2

(

1

<

D

D

r

i

 – korekcja reszty przez dodanie dzielnika  

• 

porównanie tymczasowej reszty cz ciowej 2r

i

 i dzielnika D 

→ 

je li 

0

)

2

(

1

D

D

r

i

 – odj cie dzielnika 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–

Dzielenie nieodtwarzaj ce (nierestytucyjne) 

W wyniku odj cia dzielnika od reszty  r

i

=

r

i

1

 mo e powsta : 

• 

reszta r

i

 poprawna, je eli r

i

> 0  

– odpowiada jej cyfra ilorazu o warto ci q

i

=

• 

reszta r

i

 niepoprawna, je eli r

i

< 0  

– odpowiada jej cyfra ilorazu o warto ci q

i

= 0 

 
je li reszta  r

i

  jest niepoprawna, to  

• 

wła ciw  kolejn  reszt  jest  r

i

= 2 r

i

1

 

• 

podstaw  wyznaczenia warto ci kolejnej cyfry ilorazu jest 

 

r

i

+

1

= 2 (2 r

i

1

)

 

• 

t  sam  warto  otrzymamy w wyniku opó nionej korekcji, dodaj c D  

 

r

i

+

1

= 2 (2 r

i

1

D)

+

D  

 
Je

ś

li X D < 0 to X

2

m

 jest niepoprawn  reszt , wi c

 

 

0

0

gdy  

  

gdy  

  

2

2

0

<

+

=

D

X

D

X

D

X

D

X

r

m

m

,     

0

0

   

gdy

gdy

   

1

0

0

0

0

>

<

=

D

r

D

r

q

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–10 

Dzielenie nieodtwarzaj ce (nierestytucyjne) 

Zale no  kolejnej reszty od poprzedniej i wyznaczonej z niej 

• 

0

0

2

1

=

<

=

i

i

i

q

D

r

r

  oraz  

D

r

D

D

r

r

i

i

i

+

=

+

=

+

2

)

2

(

2

1

1

 

• 

1

0

2

1

=

=

i

i

i

q

D

r

r

  oraz  

D

r

D

D

r

r

i

i

i

=

=

+

2

)

2

(

2

1

1

 

 
Algorytm dzielenia nieodtwarzaj cego w kodzie U2 (|X

2

m

|

<|

D|)  

Krok 0. 

0

0

gdy  

  

gdy  

  

2

2

0

<

+

=

D

X

D

X

D

X

D

X

r

m

m

 

Krok 1. Je eli:  a) 

0

D

r

i

 podstaw 

1

=

i

q

 i oblicz 

D

r

r

i

i

=

+

2

1

,  

b) 

0

<

D

r

i

 podstaw 

0

=

i

q

 i oblicz 

D

r

r

i

i

+

=

+

2

1

 

0

0

   

gdy

gdy

   

1

0

>

<

=

D

r

D

r

q

i

i

i

     

D

q

r

r

i

i

i

)

2

1

(

2

1

+

=

+

,      i = 0, 1, 2, ... 

 

Krok 2. Zwi ksz i. Je li i < p, wró  do kroku 1. 

 

Krok 3. 

ulp

Q

Q

D

r

r

D

r

p

p

p

+

<

    

,

0

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–11 

Procedura dzielenia nieodtwarzaj cego 

 

D 

q

i

= 0 

q

i

= 1 

r

i+1

 

2r

i

 

D 

 

(1)

 

(2)

 

(3)

 

D 

D 

2

D 

2D 

(0,0) 

q

i+1

= 0 

q

i+1

= 1 

 

Wykres dzielenia nieodtwarzaj

ą

cego w kodzie U2 (D>0) 

schemat wyznaczania cyfry ilorazu (1), reszty cz ciowej (2)  

i przeskalowanej reszty cz ciowej (3) 

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–12 

Schemat dzielenia nieodtwarzaj cego 

 

 

R

 

X/R 

Σ

 

 

C

 

ShL

 

  

 

Schemat blokowy układu dziel

ą

cego liczby całkowite w kodzie U2:  

C||X/R – przedłu ony rejestr dzielnej i reszt cz ciowych,  

Q – rejestr ilorazu, D – rejestr dzielnika 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–13 

Dzielenie odtwarzaj ce i nieodtwarzaj ce (U2) – maszynowe (przykład 1) 

X 

  ( 0 ) 0 , 1 0 1 1   (

11

/

16

)

 

 

X D > 0,    

zb

ę

dne skalowanie, |X / D | < 1

 

D 

  ( 0 ) 0 , 1 1 0 1   (

13

/

16

)

 

   

 

 

(nieodtwarzaj

ą

ce

 

 

 

 

   

X 

  ( 0 ) 0 , 1 0 1 1  

 

 

 

 

(odtwarzaj

ą

ce)

 

   

– D 

  ( 1 ) 1 , 0 0 1 1  

 

 

r

0

X 

  ( 0 ) 0 , 1 0 1 1  

 

q

0

= 0   

r

0

X– D 

  ( 1 ) 1 , 1 1 1 0  

rD

<

q

0

= 0 

 

 

 

 

 

 

 

 

 

 

 

2r

0

= 2X 

  ( 0 ) 1 , 0 1 1 0  

 

   

2r

0

 

  ( 1 ) 1 , 1 1 0 0  

 

 

– D 

  ( 1 ) 1 , 0 0 1 1  

 

   

D 

  ( 0 ) 0 , 1 1 0 1  

 

 

r

1

= 2r

0

– D    ( 0 ) 0 , 1 0 0 1  

rD

0

  q

1

= 1   

r

1

= 2r

0

D    ( 0 ) 0 , 1 0 0 1  

rD

q

1

= 1 

 

 

 

 

 

 

 

 

 

 

 

2r

1

 

  ( 0 ) 1 , 0 0 1 0  

 

   

2r

1

 

  ( 0 ) 1 , 0 0 1 0  

 

 

– D 

  ( 1 ) 1 , 0 0 1 1  

 

   

– D 

  ( 1 ) 1 , 0 0 1 1  

 

 

r

2

= 2r

1

– D    ( 0 ) 0 , 0 1 0 1  

rD

0

  q

2

= 1   

r

2

= 2r

1

– D    ( 0 ) 0 , 0 1 0 1  

rD

q

2

= 1 

 

 

 

 

 

 

 

 

 

 

 

2r

2

 

  ( 0 ) 0 , 0 1 0 1  

 

   

2r

2

 

  ( 0 ) 0 , 0 1 0 1  

 

 

– D 

  ( 1 ) 1 , 0 0 1 1  

 

   

– D 

  ( 1 ) 1 , 0 0 1 1  

 

 

r

3

= 2r

2

– D    ( 1 ) 1 , 1 0 0 0  

rD < 0

  q

3

= 0   

r

3

= 2r

2

– D    ( 1 ) 1 , 1 0 0 0  

rD < 0 

q

3

= 0 

 

 

 

 

 

 

 

 

 

 

 

2r

3

= 2

2r

2

    ( 0 ) 0 , 1 0 1 0  

 

   

2r

3

 

  ( 1 ) 1 , 0 0 0 0  

 

 

– D 

  ( 1 ) 1 , 0 0 1 1  

 

   

D 

  ( 0 ) 0 , 1 1 0 1  

 

 

r

4

= 2r

3

– D    ( 1 ) 1 , 1 1 0 1  

rD

  <

0

  q

4

= 0   

r

4

= 2r

3

D    ( 1 ) 1 , 1 1 0 1  

rD < 0 

q

4

= 0 

 

= 0,1100…

U2

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–14 

Dzielenie odtwarzaj ce i nieodtwarzaj ce (U2) – maszynowe (przykład 2) 

X 

  0 1 0 , 1 0 0 1   (

41

/

16

)

 

 

X D < 0,    

skalowanie, |X / D | > 1

 

D 

 

1 , 0 1 0 1   (–

11

/

16

)

 

   

– D 

  ( 0 ) 0 , 1 0 1 1   (

11

/

16

) 

 

 

 

 

 

   

 

 

 

 

 

X’= X

×

2

–2

    ( 0 ) 0 , 1 0 1 0 0 1 0 …  

   

X’= X

×

2

–2

    ( 0 ) 0 , 1 0 1 0 0 1 0 …  

 

  ( 1 ) 1 , 0 1 0 1  

 

   

  ( 1 ) 1 , 0 1 0 1  

 

 

r

0

X’+D

 

  ( 1 ) 1 , 1 1 1 1  

  q

0

= 1   

r

0

X’+ D    ( 1 ) 1 , 1 1 1 1   rD

 ≥

0  q

0

= 1 

 

 

 

 

 

 

 

 

 

 

 

2r

0

= 2X 

  ( 1 ) 1 , 1 1 1  

 

   

2r

0

 

  ( 1 ) 1 , 1 1 1  

 

 

– D 

  ( 0 ) 0 , 1 0 1 1  

 

   

– D 

  ( 0 ) 0 , 1 0 1 1  

 

 

r

1

= 2r

0

– D    ( 0 ) 0 , 1 0 0 1   rD

 <

0  q

1

= 0   

r

1

= 2r

0

– D    ( 0 ) 0 , 1 0 0 1   rD

 <

0  q

1

= 0 

 

 

 

 

 

 

 

 

 

 

 

2r

1

= 2

2r

0

    ( 1 ) 1 , 1 1 0  

 

   

2r

1

 

  ( 0 ) 1 , 0 0 1  

 

 

– D 

  ( 0 ) 0 , 1 0 1 1  

 

   

D 

  ( 1 ) 1 , 0 1 0 1  

 

 

r

2

= 2r

1

– D    ( 0 ) 0 , 1 0 0 0   rD

 <

0  q

2

= 0   

r

2

= 2r

1

D    ( 0 ) 0 , 1 0 0 0   rD

 <

0  q

2

= 0 

 

 

 

 

 

 

 

 

 

 

 

2r

2

= 2

2r

1

    ( 1 ) 1 , 1 0 1  

 

   

2r

2

 

  ( 0 ) 1 , 0 0 0  

 

 

– D 

  ( 0 ) 0 , 1 0 1 1  

 

   

D 

  ( 1 ) 1 , 0 1 0 1  

 

 

r

3

= 2r

2

– D    ( 0 ) 0 , 0 1 0 1   rD

 <

0  q

3

= 0   

r

3

= 2r

2

D    ( 0 ) 0 , 0 1 0 1   rD

 <

0  q

3

= 0 

 

 

 

 

 

 

 

 

 

 

 

2r

3

= 2

2r

2

    ( 1 ) 1 , 0 1 0 0  

 

   

2r

3

 

  ( 0 ) 0 , 1 0 1  

 

 

– D 

  ( 0 ) 0 , 1 0 1 1  

 

   

D 

  ( 1 ) 1 , 0 1 0 1  

 

 

r

4

= 2r

3

– D    ( 1 ) 1 , 1 1 1 1   rD

 ≥

0  q

4

= 1   

r

4

= 2r

3

D    ( 1 ) 1 , 1 1 1 1   rD

 ≥

0  q

4

= 1 

= 1,0001…

U2

×

2

2

=100,01…

U2

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–15 

Dzielenie nieodtwarzaj ce w kodzie dwójkowym SD oraz U2 

• 

iloraz w kodzie U2 – warto  cyfry zale y od znaku dzielnika 

• 

iloraz w ograniczonej reprezentacji SD (bez zer) 

 

<

=

,

0

2

gdy     

     

,

1

,

0

2

gdy     

     

,

1

1

1

i

i

i

r

r

q

               

D

q

r

r

i

i

i

=

1

2

 

 

• 

dzielna i dzielnik w kodzie U2, wynik w systemie SD 

• 

dzielna ujemna – znak ilorazu jest ustalany automatycznie  

• 

dzielnik ujemny – odwrotne przypisanie cyfr ilorazu, zatem  

 

.

0

,

0

 

&

&

 

0

0

     

lub

lub

    

0

gdy     

     

,

1

 

0

gdy     

     

,

1

 

1

-

1

-

1

-

1

-

=

=

<

>

<

>

=

i

i

i

i

i

r

r

D

D

D

r

D

r

q

 

albo 

<

=

.

0

gdy     

,

0

gdy     

    

,

sgn 

,

sgn 

1

1

i

i

i

r

r

D

D

q

        sgn = |D|/D 

• 

korekcja je li XR < 0: (XD > 0 ⇒ R+DQ–1), (XD < 0 ⇒  RDQ+1) 

• 

korekcja gdy 

0

1

=

i

r

 – w algorytmie brak mo liwo ci wytworzenia zera 

iloraz 

,...}

1

,

1

,

1

,

,...,

{

1

i

q

q

=

Q

 zamiast 

,...}

0

,

0

,

0

,

,...,

{

1

i

q

q

=

Q

. (!!|R| = |D|) 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–16 

Schemat dzielenia nieodtwarzaj cego w kodzie SD oraz U2 

• 

iloraz w ograniczonej reprezentacji SD (bez zer) 

r

|D|

–|D|

(0,0)

|D|

|D|

|D|

–|D|

r

–1

i

2

i

2

–2

q =

i

sgn

q =

i

sgn D

D

 

 

Parametryczny wykres dzielenia nieodtwarzaj cego w kodzie U2 

 
iloraz Q

 w kodzie SD 

 przekodowanie na kod U2: podstawienie 

1

2

=

i

i

z

q

.  

 

p

i

p

i

i

i

p

i

i

p

i

p

i

i

z

z

z

z

Q

=

+

+

=

=

+

+

=

+

=

=

2

2

)

1

(

2

)

2

1

(

2

)

1

2

(

1

1

1

1

1

1

1

 

 

 

)

1

(

2

1

i

i

q

z

+

=

 ⇒ 

|

}

...,

,

,

,

0

{

|

|

}

1

,

...,

,

),

1

{(

|

3

2

1

2

3

2

1

SD

n

U

n

q

q

q

q

z

z

z

z

=

 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–17 

Dzielenie nieodtwarzaj ce (SD) – maszynowe (przykład) 

= 0,0110    = 0,0011   

U2–SD 

 

NB 

2r

0

= 2X 

  ( 0 ) 0 , 0 1 1 0    

 0  q

1

= 1 

 

 

– D 

  ( 1 ) 1 , 1 0 1 0    

 

 

 

r

1

= 2r

0

– D    ( 0 ) 0 , 0 0 0 0    

 

 

 0 q

1

= 1 

 

 

 

 

 

 

 

2r

1

 

  ( 0 ) 0 , 0 0 0 0    

 0  q

2

= 1 

 

 

– D 

  ( 1 ) 1 , 1 0 1 0    

 

 

 

r

2

= 2r

1

– D    ( 1 ) 1 , 1 0 1 0    

 

 < 0 q

2

= 0 

 

 

 

 

 

 

 

2r

2

 

  ( 1 ) 1 , 0 1 0 0   < 0  q

3

=

1

 

 

 

D 

  ( 0 ) 0 , 0 1 1 0    

q

2

q

3

= 01 

 

 

r

3

= 2r

2

D    ( 1 ) 1 , 1 0 1 0    

 

 < 0 q

3

= 0 

 

 

 

 

 

 

 

2r

3

 

  ( 1 ) 1 , 0 1 0 0    < 0  q

4

=

1

 

 

 

D 

  ( 0 ) 0 , 0 1 1 0    

q

3

q

4

= 01 

 

 

r

4

= 2r

3

D    ( 1 ) 1 , 1 0 1 0    < 0   

 < 0 q

4

= 0 

 

   

 

= 0,1001

 

 

 

 

 

 

 

 

 

 

korekcja 

  ( 0 ) 0 , 0 1 1 0  

 

q

4

= 0 

 

= 0,1000 

r

4

  ( 0 ) 0 , 0 0 0 0  

 

= 0,1000 

 

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–18 

Dzielenie w dowolnym systemie SD 

iloraz mo na łatwo skalowa  do warto ci ułamkowej  

 

m

F

m

F

Q

D

X

Q

D

X

Q

β

β

=

=

<

=

1

 

ułamek w systemie uzupełnieniowym ma zawsze posta  (

1

β

−1

”): 

 

0

  

   

0

  

   

,...}

,

,

,

1

{

,...}

,

,

,

0

{

3

2

1

3

2

1

<

>

=

F

F

F

Q

gdy

Q

gdy

q

q

q

q

q

q

Q

 

 
po standaryzacji ilorazu: 

• 

je li X D > 0, to  q

0

= 0 oraz  r

1

X

β

m

−0⋅

X

β

m

 

je li X D < 0, to  q

0

=

1

 oraz  r

1

X

β

m

 

Zatem wszystkie kolejne cyfry ilorazu s  dodatnie i spełniaj  nierówno ci 

|r

i+1

=

β

r

i

q

i

| < | ,   r

i+1

D

≥0 

background image

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–12a 

Dzielenie odtwarzaj ce i nieodtwarzaj ce (U2) – pisemne (1) 

 

 

 

 

 

 

 

 

 

 

 

0,  1 

====

−−−−

 

X =   

 

0  1,  1 

1  0 

 

 

:  1,  0 

1  0 

====

++++

D 

k=2

 

++++

 

1,  0 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

1

 

–D 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

++++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

1 

–D 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

=  0 

Iloraz jest równy   Q = 

.

1,010... 

××××

 2

2

 = 101,0... 

 

 

 

 

 

 

====

−−−−

 

X =   

1,  1  0 

1  0 

 

 

0  1,  1 

====

++++

D 

k= 3

 

++++

 

0  1,  1 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

1

 

–D 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

++++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

1 

–D 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

=  0 

Iloraz jest równy   Q = 

.

1,010... 

××××

 2

–3

 = 1,111010...

 

 

Dzielenie 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

DIV–12b 

Dzielenie odtwarzaj ce i nieodtwarzaj ce (U2) – pisemne (2) 

 

 

 

 

 

 

 

 

 

 

 

1  0,  1 

 

====

−−−−

 

X =    (0)  0,  1  1  1  1 

 

 

1  0  1,  1 

 

====

++++

D 

k=+1

 

++++

 

0  1,  1 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rD 

 

q

1

 

−−−−

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<0 

 

q

++++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0  (=0) 

q

1, q

3+ 

0 

−−−−

 

 

 

 

1  0 

 

 

 

 

 

 

 

 

q

0 

−−−−

2D

++++

=

−−−−

D 

 

 

( = – 2D

 

 

 

<0 

 

q

3+ 

111… 

Iloraz jest równy   1,01

U2

××××

2

1

= 1,101

U2

  lub  1,00(1)

××××

2

1

= 1,101

U2 

 

 

 

 

 

0,  1 

 

 

0,  0 

 

====

−−−−

 

X =    (1)  (1)  1,  0  0  0  1 

 

:  1,  1 

 

====

++++

D 

k= –1

 

−−−−

 

0  0,  1 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0)  0 

 

 

 

 

 

 

 

rD  <0 

 

q

0

 

+D 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)  1  1 

 

 

 

 

 

 

 

 

q

−−−−

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<0 

 

q

0 

++++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0  (=0) 

q

1(0) 

Iloraz jest równy   Q = 

.

1,010... 

××××

 2

–3

 = 1,111010...

 

background image

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–1a 

Oszacowanie pierwiastka kwadratowego – algorytm intuicyjny 

 

X

A

 z dokładno ci  

ε

  je li  

2

2

)

(

ε

+

<

A

X

A

 

• 

jedyny uniwersalny algorytm – zgadywanie lub przegl

ą

d zupełny  

 
suma kolejnych naturalnych liczb nieparzystych jest kwadratem ich liczby  

(1=1

2

;  1+3=2

2

;  1+3+5=3

2

;  1+3+5+7=4

2

;  1+3+5+7+9=5

2

; …) 

  

=

=

=

n

i

n

i

n

n

n

1

2

2

2

)

1

2

(

1

2

)

1

(

 

• 

n

X

 je li  

2

2

)

1

(

+

<

n

X

n

 

 
algorytm 

0. i

=−1, 

d

=−1, 

S

=

X 

1. i

=

i

+1, 

d

=

d

+2

 

2. S

=

S

3. je li S<0 to 

i

X

, w przeciwnym razie id  do 1 

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–1b 

Poprawa dokładno ci oszacowania w systemie pozycyjnym 

Przybli eniem pierwiastka kwadratowego z liczby  

z dokładno ci  do 1 cyfry znacz cej jest q

s

β

s

 takie,  e 

 

 

2

2

2

2

2

2

)

(

)

)

1

(

(

)

(

+

+

=

+

<

s

s

s

s

s

s

s

s

s

q

q

X

q

β

β

β

β

β

β

 

• 

2s – najwy sza parzysta pot ga podstawy nie wi ksza od X 

• 

dokładno  bezwzgl dna wynosi 

β

s

 

• 

2

2

2

)

1

(

+

<

s

s

s

q

X

q

β

 

Dokładniejsze przybli enie  

1

1

+

s

s

s

s

q

q

β

β

 takie,  e 

 

 

2

1

1

2

1

1

)

)

1

(

(

)

(

+

+

<

+

s

s

s

s

s

s

s

s

q

q

X

q

q

β

β

β

β

 

 

 

)

1

)

)

(

1

(

2

(

)

2

(

1

1

2

2

1

1

+

+

+

<

+

s

s

s

s

s

s

s

s

q

q

q

q

X

q

q

q

β

β

β

 

 
Podobnie mo na obliczy  dokładniejsze przybli enie pierwiastka Q

(r)

+q

r–1

β

r–1

 

na podstawie poprzedniego przybli enia Q

(r)

 z dokładno ci  

β

r

background image

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–

Przybli enia 

Niech 

β

,

.

.

.

}

0

,

.

.

.

,

,

,

{

2

1

)

(

p

s

s

s

p

q

q

q

Q

=

      

p

s

p

s

p

p

q

Q

Q

+

=

β

)

1

(

)

(

 

X

Q

p

)

(

 z dokładno ci   

p

s

β

 je li  

2

)

(

2

)

(

)

(

)

(

p

s

p

p

Q

X

Q

+

<

β

 

 

p

s

p

s

p

s

p

p

s

p

s

p

p

p

q

Q

X

q

Q

Q

Q

+

+

<

+

=

β

β

β

)

1

(

)

1

(

)

(

)

1

(

 

 
Jak znale

 kolejn  cyfr  

q

s–p

 rozwini cia i lepsze przybli enie 

Q

(

p

)

 pierwiastka 

X

Q

Q

p

p

)

(

)

1

(

 na podstawie wyznaczonego wcze niej przybli enia 

Q

(

p

1

)

?  

Mamy 

 

2

)

1

(

2

)

1

(

)

)

1

(

(

)

(

p

s

p

s

p

p

s

p

s

p

q

Q

X

q

Q

+

+

<

+

β

β

 

czyli 

 

.

.

.

)

.

.

.

2

(

)

2

(

)

1

(

)

1

(

2

)

1

(

)

1

(

+

<

=

+

p

p

p

p

s

p

s

p

s

p

s

p

Q

R

Q

X

q

q

Q

β

β

 

 
Wynika st d rekurencyjna zale no  kolejnych reszt 

 

]

2

[

]

[

]

[

)

1

(

2

)

(

2

)

1

(

)

1

(

)

(

p

s

p

s

p

p

s

p

s

p

p

p

p

q

Q

q

Q

Q

R

R

+

=

=

β

β

 

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–

Algorytm odr czny 

Kolejn  p-t  cyfr  przybli enia pierwiastka jest najwi ksza taka 

q

s–p

,  e 

 

)

1

(

)

1

(

)

2

(

+

p

p

s

p

s

p

s

p

s

p

R

q

q

Q

β

β

 

gdzie 

]

2

[

)

1

(

)

1

(

)

(

p

n

p

n

p

p

n

p

n

p

p

q

Q

q

R

R

+

=

β

β

 

 

Po skalowaniu 

2

)

(

)

(

)

(

p

s

p

p

R

r

=

β

, kład c 

)

(

)

(

p

p

s

p

Q

Q

=

β

, otrzymamy: 

 

]

2

[

1

1

2

p

s

p

p

s

p

p

q

Q

q

r

r

+

=

β

β

 

gdzie 

Q

p–

1

  jest obliczonym poprzednim przybli eniem pierwiastka 

skalowanym do warto ci całkowitej 

 

algorytm 

1. 

s

X

r

2

0

=

β

 

2. przeskaluj poprzedni  reszt  cz ciow   

r

p–

1

 przez 

β

2

 

3. podwój i przeskaluj przez 

β

 obliczone przybli enie pierwiastka 

Q

p–

1

 

4. znajd  najwi ksz  

Q

s–p

, dla której kolejna reszta jest najmniejsza dodatnia  

5. powtarzaj od 1. a  do uzyskania wymaganej dokładno ci 

background image

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–

Algorytm odr czny – przykład 

  8  4  3, 3  5  4  4       

 q

1

=2 

843

10

 = 29 29 +2 

  4                  Q

=2 

 

 2

2

10 

 

  4  4  3              (40+q

0

)

×

q

0

 

 443 

 q

0

=9 

 

  4  4  1              Q

=29   

 2

29

10 

 

      2  3  5          (580+q

–1

)

×

q

–1

 

 235 

 q

–1

=0 

 

      2  3  5  4  4      Q

=290  

 2

290

10 

 

      2  3  2  1  6      (5800+q

–2

)

×

q

–2

 

 23544 

 q

–2

=4 

 

 

1  1  0  1  0  0  1  0  1  1         

 

 q

4

=1 

843

10

 = 29

2

 +2 

  1                        Q

=1 

 

1  0  0  1                    (100+q

3

)

×

q

3

 

 1001 

 q

3

=1 

 

  1  0  1                    Q

=11 

 

  1  0  0  0  0                (1100+q

2

)

×

q

2

 

 10000 

 q

2

=1 

 

    1  1  0  1                Q

=111 

 

    0  0  1  1  1  0            (11100+q

1

)

×

q

1

 

 1111 

 q

1

=0 

 

      0  0  0  0  0            Q

=1110 

 

      0  1  1  1  0  1  1        (111000+q

0

)

×

q

0

 111011 

 q

0

=1   

        1  1  1  0  0  1        Q

=11101

 

29

10

 

            1  0  1  0        r

=10 

 

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–

Algorytm odr czny – sekwencyjne generowanie podwojenia  

  8  4  3, 3  5  4  4       

 q

1

=2 

 

 

 

 

  4                  Q

=2 

 

 2

2

10 

 

+2 

 

 

 

  4  4  3              (4q)

×

q 

 443 

 q

0

=9 

 

4  

 

 

  4  4  1              Q

=29   

 2

29

10 

 

  +9 

 

 

      2  3  5          (58q)

×

q 

 235 

 q

–1

=0 

 

5  8  

 

      2  3  5  4  4      Q

=290  

 2

290

10 

 

 

 =0 

 

      2  3  2  1  6      (580q)

×

q 

 23544 

 q

–2

=4 

 

5  8  0  

 

1  1  0  1  0  0  1  0  1  1         

 

 q

4

=1 

 

  

 

 

 

 

  1                        Q

=1 

 

 +1 

 

 

 

 

1  0  0  1                    (10q)

×

q 

 1001 

 q

3

=1 

 

1  0  

 

 

 

  1  0  1                    Q

=11 

 

 

  

 

 

 

  1  0  0  0  0                (110q)

×

q 

 10000 

 q

2

=1 

 

1  1  0  

 

 

    1  1  0  1                Q

=111 

 

 

 

 +

 

 

    0  0  1  1  1  0            (1110q)

×

q 

 1111 

 q

1

=0 

 

1  1  1  0  

 

      0  0  0  0  0            Q

=1110 

 

 

 

 

 +

 

      0  1  1  1  0  1  1        (11100q)

×

q

 111011 

 q

0

=1   

1  1  1  0  0  

        1  1  1  0  0  1        Q

=11101

 

 

 

 

 

 

 +1 

            1  0  1  0        r

=10 

 

1  1  1  0  1  0 

background image

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–

Obliczanie pierwiastka kwadratowego w systemie NB 

 

]

2

[

]

[

]

[

)

1

(

2

)

(

2

)

1

(

)

1

(

)

(

p

n

p

n

p

p

n

p

n

p

p

p

p

q

Q

q

Q

Q

R

R

+

=

=

β

β

 
Po skalowaniu 

)

(

)

(

)

(

p

n

p

p

R

r

=

β

, otrzymamy wzór podobny jak w dzieleniu: 

 

]

2

[

)

1

(

)

1

(

)

(

p

n

p

n

p

p

n

p

p

q

Q

q

r

r

+

=

β

β

 

 
analogia do dzielenia 

 obliczanie pierwiastka kwadratowego w układzie dziel cym 

 

W systemie dwójkowym reguła upraszcza si  bo 

}

1

,

0

{

2

=

i

i

q

q

.  

Po normalizacji  

n

X

X

2

0

=

β

 i uproszczeniu indeksów (q

n–i

 q

i

) otrzymamy 

 

 

)

2

2

(

2

1

1

+

=

i

i

i

i

i

Q

q

r

r

,      = 1,2,..., p,      

X

r

=

0

 

+

+

<

=

).

2

2

(

2

gdy   

   

,

1

),

2

2

(

2

gdy   

   

,

0

1

1

1

1

i

i

i

i

i

i

i

Q

r

Q

r

q

 

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–

Obliczanie pierwiastka kwadratowego w systemie NB –przykład 

 

 

 

 

2

i

+ 2Q

– 1

 

q

i

 

 

r

0

X 

 

  0 0 , 1 0 1 0 1 1 1 1    

– 

q

0

= 0   0, 

2r

0

 

 

  0 1 , 0 1 0 1 1 1 1 0  

  00,1 

q

1

= 1   0,1 

– d

1

= – (2

–1

+ 2Q

0

)   

  1 1 , 1 0 0 0 0 0 0 0    

 

 

 

r

1

= 2r

0

– d

1

 

 

  0 0 , 1 1 0 1 1 1 1 0    

 

 

 

2r

1

 

 

  0 1 , 1 0 1 1 1 1 0 0  

  01,01 

q

2

= 1   0,11 

– d

2

= – (2

–2

+ 2Q

1

)   

  1 0 , 1 1 0 0 0 0 0 0    

 

 

 

r

2

= 2r

1

– d

2

 

 

  0 0 , 0 1 1 1 1 1 0 0    

 

 

 

2r

2

 

 

  0 0 , 1 1 1 1 1 0 0 0   <  01,101 

q

3

= 0   0,110 

 

 

 

 

 

 

 

2r

3

= 2

2r

2

 

 

  0 1 , 1 1 1 1 0 0 0 0  

  01,1001 

q

4

= 1   0,1101 

– d

4

= – (2

–4

+ 2Q

3

)   

  1 0 , 0 1 1 1 0 0 0 0    

 

 

 

r

4

= 2r

3

– d

4

 

 

  0 0 , 0 1 1 0 0 0 0 0    

 

 

 

2r

4

 

 

  0 0 , 1 1 0 0 0 0 0 0   <  01,10101 

q

5

= 0   0,11010 

 

 

 

 

 

 

 

2r

5

= 2

2r

4

 

 

  0 1 , 1 0 0 0 0 0 0 0   <  01,101001 

q

6

= 0   0,110100 

 

 

 

 

 

 

 

2r

6

= 2

2r

5

 

 

0 1 1 , 0 0 0 0 0 0 0 0  

  01,1010001 

q

7

= 1   0,1101001 

– d

7

= – (2

–7

+ 2Q

6

)   

1 1 0 , 0 1 0 1 1 1 1 0    

 

 

 

r

7

= 2r

6

– d

7

 

 

0 0 1 , 0 1 0 1 1 1 1 0    

 

 

 

2r

7

 

 

0 1 0 , 1 0 1 1 1 1 0 0  

  01,10100101  q

8

= 1   0,11010011 

background image

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–

Obliczanie pierwiastka kwadratowego – metoda nierestytucyjna 

algorytm oparty na regule  

 

)

2

2

(

2

1

1

+

=

i

i

i

i

i

Q

q

r

r

,      = 1,2,..., p,      

X

r

=

0

 

 
mo na zrealizowa  w wersji nieodtwarzaj cej reszty cz ciowe.  
 
Bezpo rednie zastosowanie niemo liwe – kolejna cyfra jest wyznaczana po 
okre leniu znaku nast pnej reszty. W pierwiastkowania warto  tej reszty 
zale ałaby od warto ci cyfry wyznaczanej na jej podstawie!  
 
Problem znika, je li wynik wytwarzamy w kodzie SD 
 

 

)

2

2

(

      

,

2

1

1

+

=

=

i

i

i

i

i

i

i

Q

q

d

d

r

r

,      

X

r

=

0

,      = 1,2,...,p

 

<

=

,

0

2

gdy   

   

,

1

,

0

2

gdy   

   

,

1

1

1

i

i

i

r

r

q

 

 
! konieczna jest bie

ca korekcja po wyst pieniu cyfry ujemnej 

 

Obliczanie 

√√√√

 

© Janusz BiernatDzielenie'04, 19 listopada 2004

 

SQRT–

Obliczanie pierwiastka kwadratowego – metoda nierestytucyjna 

 

  =

49

/

256 

 

  2

i

+ 2Q

– 1

  q

i

  (SD)    Q

i

 

r

0

X 

  00,00110001 

 

  – 

q

0

= 0 

  0, 

2r

0

 

  00,01100010 

 0    00,1 

q

1

= 1 

   

– d

1

= – (2

–1

+ 2Q

0

  11,10000000 

 

   

 

  0,1 

r

1

= 2r

0

– d

1

 

  11,11100010 

 

   

 

   

2r

1

 

  11,11000100 

< 0    01,01 

q

2

=

1

 

  0,1

1

 

d

2

= + (2

–2

+ 2Q

1

)    00,11000000 

 

  00,11 

 

  0,01 

r

2

= 2r

1

d

2

 

  00,10000100 

 

   

q

1

q

2

= 0 1     

2r

2

 

  01,00001000 

 0    0,101 

 

   

– d

3

= – (2

–3

+ 2Q

2

  11,01100000 

 

   

q

3

= 1 

  0,011 

r

3

= 2r

2

– d

3

 

  00,01101000 

 

   

 

   

2r

3

 

  00,11010000 

 0    0,1101 

 

   

– d

4

= – (2

–4

+ 2Q

3

  11,00110000 

 

   

q

4

= 1 

  0,0111 

r

4

= 2r

3

– d

4

 

  01,00000000 

 

   

 

   

 
Pierwiastek ma sko czone rozwini cie  Q = 0,0111 (

16

7

). 

W drugim kroku dokonano zamiany przybli enia pierwiastka z kodu SD na U2