Dzielenie'04

background image

Dzielenie

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

DIV–1

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 Biernat, Dzielenie'04, 19 listopada 2004

DIV–2

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 Biernat, Dzielenie'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 s 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 Biernat, Dzielenie'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 Biernat, Dzielenie'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 s 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 Biernat, Dzielenie'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 Biernat, Dzielenie'04, 19 listopada 2004

DIV–3

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 Biernat, Dzielenie'04, 19 listopada 2004

DIV–4

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

s 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

si

= 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 Biernat, Dzielenie'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

q <

β

(zbie

ż

ne)

r

i

D

? 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 Biernat, Dzielenie'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

q <

β

(zbie

ż

ne)

r

i

D

? 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 Biernat, Dzielenie'04, 19 listopada 2004

DIV–5

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 D

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

Dzielenie

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

DIV–6

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⋅

D = X

β

m

je li X D < 0, to q

0

=

1

oraz r

1

= X

β

m

−(−1)⋅

D = 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 Biernat, Dzielenie'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

D | < | D | , 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

D = r

0

3. Je li X D < 0, to q

0

=

1

oraz r

1

= r

0

1

D = r

0

+ D

4. Obliczaj kolejno |r

i+1

=

β

r

i

q

i

D | < | D | , r

i+1

D

≥0

Dzielenie

© Janusz Biernat, Dzielenie'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

D | < | D | , t o q

i

= 1

je li |r

i+1

=

2

r

i

D | > | D | , t o q

i

= 0 oraz r

i+1

=

2

r

i

background image

Dzielenie

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

DIV–7

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 = D

X = 7 6 5, 4

:

6, 8 8 = D

2, 3 6 6 :

+

3 1, 2

2 3 6, 6 :

3, 1 2

,

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

+

0 3 1, 2

0

0 0 7 7 4

q

1

=

2

9 7 6 5 4

q

1

=

7

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

=

5

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

=

1

0 2 4 9 6

+

0 0 3 1 2

Q

=

9, 2 4 8 …

×

10

1

Q

=

0, 7 5 1 …

×

10

2


*

)

zamiast –qD mo

ż

na wykona

ć

q(–D)

Dzielenie

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

DIV–8

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

, 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 Biernat, Dzielenie'04, 19 listopada 2004

DIV–9

Dzielenie nieodtwarzaj ce (nierestytucyjne)

W wyniku odj cia dzielnika od reszty r

i

=

2 r

i

1

D mo e powsta :

reszta r

i

poprawna, je eli r

i

D > 0

– odpowiada jej cyfra ilorazu o warto ci q

i

=

1

reszta r

i

niepoprawna, je eli r

i

D < 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

)

D

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 Biernat, Dzielenie'04, 19 listopada 2004

DIV–10

Dzielenie nieodtwarzaj ce (nierestytucyjne)

Zale no kolejnej reszty od poprzedniej i wyznaczonej z niej q

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 Biernat, Dzielenie'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 Biernat, Dzielenie'04, 19 listopada 2004

DIV–12

Schemat dzielenia nieodtwarzaj cego

R

X/R

Q

D

Σ

C

ShL

0

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 Biernat, Dzielenie'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

= XD

( 1 ) 1 , 1 1 1 0

rD

<

0

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

0

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

0

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

Q = 0,1100…

U2

Dzielenie

© Janusz Biernat, Dzielenie'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 …

D

( 1 ) 1 , 0 1 0 1

D

( 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 0

2r

0

( 1 ) 1 , 1 1 1 0

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 1

2r

1

( 0 ) 1 , 0 0 1 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 0

2r

2

( 0 ) 1 , 0 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 0

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

Q = 1,0001…

U2

×

2

2

=100,01…

U2

background image

Dzielenie

© Janusz Biernat, Dzielenie'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|/D

korekcja je li XR < 0: (XD > 0 ⇒ R+D, Q–1), (XD < 0 ⇒ RD, Q+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 Biernat, Dzielenie'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 Biernat, Dzielenie'04, 19 listopada 2004

DIV–17

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

D = 0,0110 X = 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

Q = 0,1001

korekcja

( 0 ) 0 , 0 1 1 0

q

4

= 0

Q = 0,1000

R = r

4

+ D

( 0 ) 0 , 0 0 0 0

Q = 0,1000

Dzielenie

© Janusz Biernat, Dzielenie'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⋅

D = 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

D | < | D | , r

i+1

D

≥0

background image

Dzielenie

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

DIV–12a

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

0, 1

0

1

1

====

−−−−

D

X =

0 1, 1

1 0

: 1, 0

1 0

1

====

++++

D

k=2

++++

D

1, 0

1

0

1

1

1

1

0

0

0

q

0

= 1

–D

0

1

0

1

1

0

0

0

1

1

0

q

1

= 0

++++

D

1

0

1

0

1

1

1

0

1

1

0

q

2

= 1

–D

0

1

0

1

1

0

0

0

0

1

q

3

= 0

Iloraz jest równy Q =

.

1,010...

××××

2

2

= 101,0...

0

0

1

1

1

0

1

0

1

0

1

====

−−−−

D

X =

1, 1 0

0

1 0

:

0

1

0 1, 1

====

++++

D

k= 3

++++

D

0

1

0 1, 1

0

0

1

0

0

0

q

0

= 1

–D

1

0

1

0

1

1

1

1

0

1

0

q

1

= 0

++++

D

0

1

0

1

1

0

0

1

0

1

0

q

2

= 1

–D

1

0

1

0

1

1

1

1

1

1

q

3

= 0

Iloraz jest równy Q =

.

1,010...

××××

2

–3

= 1,111010...

Dzielenie

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

DIV–12b

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

0

1 0, 1

====

−−−−

D

X = (0) 0, 1 1 1 1

:

1 0 1, 1

====

++++

D

k=+1

++++

D

1

0 1, 1

1

1

1

0

1

rD

0

q

0

= 1

−−−−

D

0

1

0

1

0

0

1

0

1

<0

q

1

= 0

++++

D

1

0

1

1

0

0

0

0

0

0 (=0)

q

2

= 1, q

3+

= 0

−−−−

D

0

1 0

1

q

2

= 0

−−−−

2D

++++

D =

−−−−

D

0

1

0

1

0

( = – 2D)

<0

q

3+

= 111…

Iloraz jest równy Q = 1,01

U2

××××

2

1

= 1,101

U2

lub Q = 1,00(1)

××××

2

1

= 1,101

U2

0, 1

1

1

1

0, 0

1

1

====

−−−−

D

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

: 1, 1

0

1

====

++++

D

k= –1

−−−−

D

0 0, 1

1

(0) 0

0

1

0

rD <0

q

0

= 0

+D

1

1

0

1

(1) 1 1

1

0

0

q

1

= 1

−−−−

D

0

0

1

1

0

0

0

1

1

<0

q

2

= 0

++++

D

1

1

0

1

0

0

0

0

0

0 (=0)

q

3

= 1(0)

Iloraz jest równy Q =

.

1,010...

××××

2

–3

= 1,111010...

background image

Obliczanie

√√√√

© Janusz Biernat, Dzielenie'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

d

3. je li S<0 to

i

X

, w przeciwnym razie id do 1

Obliczanie

√√√√

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

SQRT–1b

Poprawa dokładno ci oszacowania w systemie pozycyjnym

Przybli eniem pierwiastka kwadratowego z liczby X

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 Biernat, Dzielenie'04, 19 listopada 2004

SQRT–1

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 Biernat, Dzielenie'04, 19 listopada 2004

SQRT–2

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 Biernat, Dzielenie'04, 19 listopada 2004

SQRT–3

Algorytm odr czny – przykład

8 4 3, 3 5 4 4

q

1

=2

843

10

= 29 29 +2

4 Q

1

=2

2

2

10

4 4 3 (40+q

0

)

×

q

0

443

q

0

=9

4 4 1 Q

2

=29

2

29

10

2 3 5 (580+q

–1

)

×

q

–1

235

q

–1

=0

2 3 5 4 4 Q

3

=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

1 0 0 1 (100+q

3

)

×

q

3

1001

q

3

=1

1 0 1 Q

2

=11

1 0 0 0 0 (1100+q

2

)

×

q

2

10000

q

2

=1

1 1 0 1 Q

3

=111

0 0 1 1 1 0 (11100+q

1

)

×

q

1

1111

q

1

=0

0 0 0 0 0 Q

4

=1110

0 1 1 1 0 1 1 (111000+q

0

)

×

q

0

111011

q

0

=1

1 1 1 0 0 1 Q

5

=11101

29

10

1 0 1 0 r

5

=10

Obliczanie

√√√√

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

SQRT–4

Algorytm odr czny – sekwencyjne generowanie podwojenia

8 4 3, 3 5 4 4

q

1

=2

2

4 Q

1

=2

2

2

10

+2

4 4 3 (4q)

×

q

443

q

0

=9

4 9

4 4 1 Q

2

=29

2

29

10

+9

2 3 5 (58q)

×

q

235

q

–1

=0

5 8 0

2 3 5 4 4 Q

3

=290

2

290

10

=0

2 3 2 1 6 (580q)

×

q

23544

q

–2

=4

5 8 0 4

1 1 0 1 0 0 1 0 1 1

q

4

=1

1

1 Q

1

=1

+1

1 0 0 1 (10q)

×

q

1001

q

3

=1

1 0 1

1 0 1 Q

2

=11

1

1 0 0 0 0 (110q)

×

q

10000

q

2

=1

1 1 0 1

1 1 0 1 Q

3

=111

+1

0 0 1 1 1 0 (1110q)

×

q

1111

q

1

=0

1 1 1 0 0

0 0 0 0 0 Q

4

=1110

+0

0 1 1 1 0 1 1 (11100q)

×

q

111011

q

0

=1

1 1 1 0 0 1

1 1 1 0 0 1 Q

5

=11101

+1

1 0 1 0 r

5

=10

1 1 1 0 1 0

background image

Obliczanie

√√√√

© Janusz Biernat, Dzielenie'04, 19 listopada 2004

SQRT–5

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

, i = 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 Biernat, Dzielenie'04, 19 listopada 2004

SQRT–6

Obliczanie pierwiastka kwadratowego w systemie NB –przykład

2

i

+ 2Q

i – 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 Biernat, Dzielenie'04, 19 listopada 2004

SQRT–7

Obliczanie pierwiastka kwadratowego – metoda nierestytucyjna

algorytm oparty na regule

)

2

2

(

2

1

1

+

=

i

i

i

i

i

Q

q

r

r

, i = 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

, i = 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 Biernat, Dzielenie'04, 19 listopada 2004

SQRT–8

Obliczanie pierwiastka kwadratowego – metoda nierestytucyjna

X =

49

/

256

2

i

+ 2Q

i – 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 = 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


Wyszukiwarka

Podobne podstrony:
04 06 Dzielenie
Wykład 04
04 22 PAROTITE EPIDEMICA
04 Zabezpieczenia silnikówid 5252 ppt
Wyklad 04
Wyklad 04 2014 2015
04 WdK
04) Kod genetyczny i białka (wykład 4)
2009 04 08 POZ 06id 26791 ppt
2Ca 29 04 2015 WYCENA GARAŻU W KOSZTOWEJ
04 LOG M Informatyzacja log
04 Liczby ujemne i ułamki w systemie binarnym
UE i ochrona srodowiska 3 04 2011

więcej podobnych podstron