Systemy liczbowe

Transkrypt

Systemy liczbowe
Arytmetyka komputerów
Arytmetyka
arytmetyka klasyczna – arytmetyka rozszerzeń nieskończonych
⇒ dopisujemy brakujące pozycje
arytmetyka komputerowa – arytmetyka ograniczonego zakresu
⇒ wynik poza zakresem – nadmiar (overflow)
podstawowe działania arytmetyczne
• dodawanie
• odejmowanie
• mnoŜenie – sekwencja dodawań
• dzielenie – sekwencja odejmowań
• skalowanie – mnoŜenie przez całkowitą potęgę bazy
• obliczanie pierwiastka kwadratowego – zmodyfikowane dzielenie
systemy dwójkowe
• dwoista interpretacja cyfry – wartość arytmetyczna lub logiczna
• algorytmy – odwzorowanie w postaci sieci logicznej
AR–I
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Arytmetyka komputerów
Dokładność obliczeń w systemach naturalnych
Dodawanie, odejmowanie, mnoŜenie
• jeśli argumenty są dokładne, to wynik takŜe jest dokładny
• jeśli znany jest błąd przybliŜenia argumentów,
to moŜna łatwo kontrolować dokładność wyniku
Dzielenie, mnoŜenie
• jeśli argumenty są dokładne, to wynik jest zwykle niedokładny
• iloraz jest wyznaczany z dokładnością równą stosunkowi wartości
przeskalowanej ostatniej reszty do wartości dzielnika
• błąd przybliŜenia iloczynu jest kumulowany
• nawet jeśli znany jest błąd przybliŜenia argumentów,
to bardzo trudno kontrolować dokładność wyniku
Wniosek
Jeśli moŜliwa jest zmiana kolejności działań,
naleŜy najpierw wykonać działania dokładne
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
AR–II
Cyfry, liczby, wielomiany
Cyfry i liczby
Cyfra – znak (symbol pisarski)
Liczba – wartość przypisana ciągowi cyfr (takŜe jednej cyfrze)
Cyfry arabskie (pochodzące z Persji)
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
„10“ „11“ „12“ „13“ „14“ „15“
A
B
C
D
E
F
Cyfry w zapisie w języku arabskim (pochodzące z Indii)
٠
١
٢
٣
٤
٥
٦
٧
٨
٩
Umowa (niepisana) o zapisie cyfr o wartościach większych od dziewięciu
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
„10“ „11“ „12“ „13“ „14“ „15“
A
B
C
D
E
F
SL–I
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Cyfry, liczby, wielomiany
Liczby zespolone
Liczba zespolona – para liczb (a, b), której przypisano wartość zespoloną
|(a, b)| = a + i b,
i2=−1
Dodawanie i odejmowanie
[ a + i b] ± [ a + i b] = [ a± c] + i [ b± d]
MnoŜenie
[ a + i b] ⋅ [ c + i d] = [ a c − b d ] + i [ a d + b c ]
Dzielenie
[ a + i b] / [ c + i d] = [ a + i b] [ c − i d] / [ c + i d] [ c − i d] =
= { [ a c + b d ] + i [ a d + b c ] } / [ c 2 + d 2]
Postać wykładnicza
e i x = cos x + i sin x
Wzór de’Moivre’a-Laplace’a
( e i x ) n = ( cos x + i sin x ) n = cos n x + i sin n x = e i n x
Wzór Laplace’a
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
eiπ+1=0
SL–II
Cyfry, liczby, wielomiany
Wielomiany
W ( n ) ( x) = an x n + an −1 x n −1 + ... + a1 x1 + a0 x 0 = ∑ ai x i
n
i =0
(n)
Q (x) – dzielnik wielomianu
W ( n ) ( x) = W ( n − k ) ( x) Q ( k ) ( x) + R ( k −1) ( x)
Wniosek 1:
W ( n ) ( x) = ( x − x0 ) P ( n −1) ( x) + W ( n ) ( x0 )
Wniosek 2:
Jeśli xi są pierwiastkami wielomianu (W(n)(xi) = 0), to
W ( n ) ( x) = an ( x − x1 )( x − x2 )...( x − xs ) P ( n − s ) ( x)
gdzie P(n–s)(x) jego dzielnikiem nierozkładalnym na czynniki liniowe.
Jeśli pierwiastki są zespolone to P(n–s)(x) = 1
Wniosek 3:
Całkowite pierwiastki wielomianu o współczynnikach całkowitych
są podzielnikami wyrazu wolnego a0 = an x1 x2 …xs .
SL–III
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Cyfry, liczby, wielomiany
Wielomian i wielomian podstawy
Wielomian (polynomial)
W n = {an, an–1, … a1, a0}
W n ( x) = a n x n + a n −1 x n −1 + ... + a1 x 1 + a 0 x 0
x – zmienna, ai – parametry
W n ( x) = ∑ ai x i
n
i =0
Wielomian podstawy (radix polynomial) – reprezentacja stałobazowa
Z = {zn, zn–1, … z1, z0}
Z ( β ) = zn β n + zn −1β n −1 + ... + z1β 1 + z0 β 0
β – parametr
zi – zmienne
Z ( β ) = Z = ∑ zi β i
n
i =0
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–IV
Cyfry, liczby, wielomiany
Algebra wielomianów i algebra liczb
Algebra wielomianów
W ( x) + W ( x) = ∑ (ai + bi ) x = ∑ si x i
n
n
a
n
b
n
i
i =0
i =0
si = ai + bi
Algebra liczb (wielomianów podstawy) – reprezentacja stałobazowa
Z (β ) + Y (β ) = ∑ ( z i + yi ) β = ∑ si β i
n
n
i
i =0
i =0
zi + yi + ci < β ⇒ si = zi + yi + ci , ci +1 = 0
zi + yi + ci ≥ β ⇒ si = zi + yi + ci − β , ci +1 = 1
SL–V
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Cyfry, liczby, wielomiany
Obliczenia – schemat Hornera
W ( n ) ( x ) = ∑ ai x i = a0 + x {a1 + x [a2 + x (a3 + ... + x (an−1 + x an )]}
n
i =0
złoŜoność obliczeniowa
• suma iloczynów przez potęgi zmiennej
o n dodawań, n mnoŜeń, n–1 obliczeń potęgi, pamięć potęg
• suma iloczynów przez potęgi zmiennej
o n dodawań oraz n mnoŜeń, zbędna pamięć
UŜyteczne przekształcenia
x n W ( n ) ( x −1 ) = an + an−1 x + ... + a1 x n−1 + a0 x n = ∑ ai x n−i
n
i =0
Wniosek:
Pierwiastki wymierne wielomianu o współczynnikach całkowitych
są podzielnikami wyrazu najwyŜszego an = a0 x1 x2 …xs .
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–VI
Cyfry, liczby, wielomiany
Szybkie obliczanie wartości liczby – schemat Hornera
liczby całkowite
Z β = {z n ,..., z1 , z 0 }β = ∑ z i β i = z 0 + z1 β + z 2 β 2 + ... + z n β n
n
i =0
obliczanie rekurencyjne
Z β = ∑ z i β i = {[( βz n + z n −1 ) β + z n − 2 ]β + ... + z1}β + z 0
n
i =0
liczby ułamkowe
Z β = {z −1 ,..., z − m +1 , z − m }β =
∑ zi β i = z −1β −1 + z −2 β − 2 + ... + z −m β −m
−1
i =−m
obliczanie rekurencyjne – wartość w postaci ułamka wymiernego
Zβ =
∑ zi β i = β −m {[(βz −1 + z −2 )β + ... + z −m+1 ]β + z −m }
−1
i =−m
SL–VII
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Cyfry, liczby, wielomiany
Reprezentacje systematyczne
Reprezentacje stałoprzecinkowe
– stałobazowe (i uzupełnieniowe) ustalone połoŜenie przecinka pozycyjnego
327145,12310,
0,000000000003145910
Reprezentacje zmiennoprzecinkowe – złoŜenie pól
• znak liczby (sign),
• znacznik (significand) (część ułamkowa (fraction), mantysa (mantissa)),
• wykładnik (exponent) potęgi bazy (radix) (podstawy)
o podstawa (baza) – domniemana (stała dla systemu).
3,2714512310×105, 3,1415910×10–12
Reprezentacje resztowe (residue number system, RNS)
• reprezentacja liczby – wektor reszt względem stałych bazy RNS
• tylko liczby całkowite
56 { 2 , 3, 5, 7} = {56 mod 2, 56 mod 3, 56 mod 5, 56 mod 7}={0, 2, 1, 0}
Reprezentacje logarytmiczne – znak + logarytm wartości bezwzględnej
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–VIII
Systemy liczbowe
Systemy wagowe
Systemy wagowe (weighted) – zbiór par (waga, mnoŜnik)
• brak zera, dowolność reprezentacji
– system pomiaru czasu – 1 doba =24 h, 1 h=60 min, 1 min =60 s
– brytyjski system miar
inch (cal)
foot (stopa)
yard (jard)
fathom
rod (pręt)
chain
furlong
mile (mila)
league
– 1 in (25,3995 mm)
– 1 ft = 12 in
– 1 yd = 3 ft
– 1 fathom= 2 yd
– 1 rod = 51/2 yd
– 1 chain = 4 rods
– 1 furlong = 10 chains
– 1 mi = 8 furlongs
– 1 lg = 3 m
grain (ziarno)
dram
ounce (uncja)
pound (funt)
stone (kamień)
quarter
hundredweight
ton (tona)
central
– 1 gr (64,79891 mg)
– 1 dr (1,77185 g)
– 1 oz = 16 d r = 4371/2 gr
– 1 lb = 8 oz
– 1 st = 14 lb
– 1 q = 2 st
– 1 cwt = 2 q
– 1 t = 20 cwt
– 1 st = 100 Ib
Systemy pozycyjne (positional, place-value) – wagi uporządkowane
• z kaŜdą pozycją (wagą) skojarzona cyfra (mnoŜnik) → niezbędne zero
SL–1
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Systemy pozycyjne
Systemy ze stałą podstawą (fixed-radix)
• stałobazowe (radix-based) – waga pozycji = potęga podstawy (radix)
– negabazowe (negative radix) – ujemna podstawa (baza)
– uzupełnieniowe (radix-complement) – ujemna waga pozycji najwyŜszej
• z cyfrą znakowaną (signed digit, SD) – cyfry ujemne
Systemy z mieszanymi podstawami (mixed-radix) – waga = iloczyn potęg baz
o system rzymski
• w notacji – system wagowy (bez zera)
• w sposobie liczenia – system z podstawami mieszanymi
I
V
X
L
(= 2050)
(= 2051)
(= 2151)
(= 2152)
jedność
piątka
dziesiątka
pięćdziesiątka
C
D
M
(= 2252) setka
(= 2253) pięćsetka
(= 2353) tysiąc
Systemy resztowe (residue number system, RNS)
• reprezentacja liczby – wektor reszt względem stałych bazy RNS
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–2
Systemy liczbowe
Systemy stałobazowe
System pozycyjny – dla kaŜdej pozycji określone:
• reguła tworzenia wag W = {wk −1 ,..., w1 , w0 ,..., w− m }
• zbiór dozwolonych cyfr D i = {d ip −1 ,..., d 1i , d 0i }
X = {xk −1 ,..., x1 , x0 ,..., x− m }W ⇒ |X| = X⋅W
System stałobazowy 〈β,Λ
Λ, D〉 (fixed-radix)
• podstawa / baza (radix) β – liczba całkowita, |β | ≥ 2
W = {λk −1 β k −1 ,..., λ0 β 0 ,..., λ− m β − m } ,
waga wk = λk −1β k −1
mnoŜniki wag: Λ = {λ k −1 ,..., λ1 , λ 0 ,..., λ − m :λi = ±1}
• zbiór cyfr Di = D = {d p −1 ,..., d1 , d 0 = 0} – zawiera zero
X =| X |= {xk −1 ,..., x1 , x0 ,..., x− m }β = X⋅W =
∑ λi xi β i ,
k −1
i =− m
xi ∈ D
o standardowy zbiór cyfr: D = {β − 1,...,1,0} → system standardowy
• dokładność bezwzględna = waga najmniej znaczącej pozycji ulp = β − m
SL–3
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Dodawanie i odejmowanie w systemach stałobazowych
X = {xk −1 ,..., x1 , x0 ,..., x− m }β ,
X=
∑ λi xi β i ,
k −1
Y=
i =− m
Y = { yk −1 ,..., y1 , y0 ,..., y− m }β
∑ λi yi β i ,
k −1
i=−m
xi , yi ∈ D,
λ i = ±1
⇓ ( si ∈ D )
X ± Y = {sk −1 ,..., s1 , s0 ,..., s− m }β ⇔ {sk −1 ,..., s1 , s0 ,..., s− m }β = X ± Y
Rekurencyjna reguła wyznaczania cyfr sumy lub róŜnicy
istnieje tylko wtedy, gdy istnieje ogólne rozwiązanie równania:
λi β i xi ± λi β i yi ± λi β i ci = ± λi+1β i+1ci +1 + λi β i si ,
po uproszczeniu:
xi ± yi ± ci = ±(λi λi +1 ) β ci +1 + si
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–4
Systemy liczbowe
Dodawanie i odejmowanie w systemach stałobazowych (a)
Jeśli λiλi+1=1, to:
• standardowy zbiór cyfr D = {0,1,…, β − 1}
xi ± yi ± ci = ± β ci +1 + si
i wtedy rozwiązaniem jest
gdy | xi ± yi ± ci |< β i wtedy ci +1 = 0
 x ± y i ± ci
si =  i
 xi ± yi ± ci m β gdy | xi ± yi ± ci |≥ β i wtedy ci +1 = 1
• niestandardowy zbiór cyfr D = {0, d 1 ,d 2 ,…,d β − 1 ,…; d i mod β = i }
nie moŜna podać ogólnego rozwiązania
– suma liczb jednocyfrowych moŜe tu być wielocyfrowa
SL–4a
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Dodawanie i odejmowanie w systemach stałobazowych (b)
jeśli λiλi+1= –1 (systemy z ujemną podstawą – negabazowe)
i zbiór cyfr jest standardowy, to:
xi ± yi ± ci = ±(− β )ci +1 + si
PoniewaŜ wagi kolejnych pozycji maja przeciwne znaki, więc
rozwiązaniem jest przeniesienie podwójne [ β ci +1 − ( β − 1)ci +1 ]
co prowadzi do korekty formuły dodawania/odejmowania
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–4b
Systemy liczbowe
Właściwości systemów stałobazowych
Unikatowa reprezentacja zera – X = 0 ⇔ |X = {0,...,0,0}β |
• systemy naturalne ( λi = 1) – wi = β i
• systemy negabazowe (z bazą ujemną) ( λi = (−1)i ) – wi = ( − β )i
Zakres liczb
N = |{nk–1, …, n0, …, n–m}β | ≤ X ≤ |{pk–1, …, …, po, …, p–m}β |= P
n i = 12 (1 − λ i )( β − 1) ,
p i = 12 (1 + λ i )( β − 1)
• rozpiętość Z = P − N = β k − β − m
• asymetria Q = P+ N = |{β –1, ..., β –1, β –1}β |
P = 12 (Q + Z ) ,
N = 12 (Q − Z )
Systemy z cyframi znakowanymi (SD) – moŜliwa nadmiarowa reprezentacja
• D = {d p −1 ,..., d1 , d 0 = 0}, p ≥ β , d i < β – standardowe
p = 2β – 1 ⇒ ni = −( β − 1) ,
pi = ( β − 1)
P = − N = β k − β −m
• standardowe nieredundantne – D = {−α ,−α + 1,...,0,1,..., ( β − 1 − α )}
SL–5
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Jednoznaczność reprezentacji stałobazowej
TWIERDZENIE. Reprezentacja liczby w systemie stałobazowym jest unikatowa.
D o w ó d . Niech X j = {0,...,0, x j ,..., x1 , x0 ,..., x− m | x j ≠ 0}β . Jako, Ŝe x j ≠ 0 , więc
X max
− X min
< Pj − N j = Z j ≤ β
j
j
j +1
− β −m .
Z kolei, wartość dowolnej liczby X j +1 ( x j +1 ≥ 1) moŜna obliczyć jako
X j +1 = X s ≤ j + x j +1λ j +1 β
j +1
.
PoniewaŜ |λ j+1|=1, zatem 0 < X j +1 − X s ≤ j = x j +1λ j +1β j +! ≤ β j +! . Skoro jednak
rozpiętość zakresu liczb X s< j nie przekracza β j+1, zatem X j +1 ≠ X s ≤ j .
Wynika stąd dalej, Ŝe x1j ≠ x 2j ⇒ X1j ≠ X 2j , bo wówczas albo
X1j − X 2j = {x1j − x 2j , x1j −1 ,. .., x1− m } − {0, x 2j −1 ,. .., x−2m }
albo
gdy x1j > x 2j
X1j − X 2j = {0, x1j −1 ,. .., x1− m } − {x 2j − x1j , x 2j −1 ,. .., x−2m }
gdy x1j < x 2j
Gdy zaś ∀s < i ≤ j : xi1 = xi2 , to X1j − X 2j = X1s − X 2s , co dowodzi tezy.
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–6
Systemy liczbowe
Dodawanie i odejmowanie w systemach naturalnych
W standardowym systemie naturalnym (λ i = 1) równaniem dodawania jest
xi ± yi ± ci = ± βci +1 + si
przy tym xi , yi , si ∈ {0,1,..., β − 1} ⇒ (ci ∈ {0,1} ⇒ ci +1 ∈ {0,1}) oraz
{0, xi ± yi ± ci } gdy 0 ≤ xi ± yi ± ci ≤ β
{ci +1 , si } = 
{
1
 , xi ± yi ± ci m β } gdy 0 ≤ xi ± yi ± ci m β ≤ β
±
xk–1
yk–1
xk–2
yk–2
…
…
x–m+3
y–m+3
c–m+3
s–m+3
ck
ck–1
sk–1
ck–2
sk–2
x–m+2
y–m+2
c–m+2
s–m+2
x–m+1
y–m+1
c–m+1
s–m+1
x–m
y–m
s–m
…
SL–7
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Dodawanie wieloargumentowe w systemach naturalnych
xi + yi + ... + zi = ... + β 2 ri + 2 + β vi +1 + ui
przy tym xi , yi ,..., zi , ui , vi +1 , ri + 2 ∈ {0,1,..., β − 1}
jeśli liczba składników jest ≤ β +1, suma jest dwucyfrowa
{vi +1 , ui } = {k , xi + yi + ... + zi − kβ } gdy 0 ≤ xi + yi + ... + zi − kβ < β
dodawanie moŜna wykonać dwuetapowo:
• niezaleŜnie obliczyć sumę na kaŜdej pozycji
• dodać otrzymane liczby dwucyfrowe
±
vk
sk
xk–1
yk–1
…
zk–1
uk–1
vk–1
sk–1
xk–2
yk–2
…
zk–2
uk–2
vk–2
sk–2
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
…
…
…
…
x–m+3
y–m+3
…
z–m+3
u–m+3
v–m+3
s–m+3
x–m+2
y–m+2
…
z–m+2
u–m+2
v–m+2
s–m+2
x–m+1
y–m+1
…
z–m+1
u–m+1
v–m+1
s–m+1
x–m
y–m
…
z–m
u–m
s–m
SL–8
Systemy liczbowe
Sekwencyjny algorytm mnoŜenia w systemie naturalnym
MnoŜna (multiplicand) A =| {as−1 ,..., a− p+1 , a− p }β | ,
MnoŜnik (multiplier) X =| {xk −1 ,..., x−m+1 , x−m }β | ,
 k −1
 k −1
A ⋅ X = A ⋅  ∑ xi β i  = ∑ β i ( xi A)
 i =− m
 i=− m
algorytm pisemny – akumulacja skalowanych iloczynów częściowych
i = − m, − m+1,...,k−1, S −m = 0
S i +1 = S i + β i ( xi A) ,
Sk = A ⋅ X
algorytm dodaj-przesuń (add-and-shift) – skalowanie sum częściowych
Pi = β −i S i
Pi +1 = β
−1
( Pi + x i A)
β k Pk = P− m + A{ ∑ xi β i } = A ⋅ X
k −1
i=−m
SL–9
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Tabliczki mnoŜenia w systemach naturalnych
MnoŜenie przez największą cyfrę w systemie standardowym (0<k<β )
k ( β − 1) = (k − 1) β + ( β − k ) = (k − 1) β 1 + ( β − k ) β 0
• suma cyfr iloczynu stała i równa β – 1
Konstrukcja tabliczek mnoŜenia – iloczyn jest przemienny
5
2
3
4
2
3
4
4 — —
11 14 —
13 22 31
7 2 3 4
2 4 — —
3 6 12 —
4 11 15 22
5 13 21 26
6 15 24 33
5
—
—
—
34
42
6
—
—
—
—
51
9
2
3
4
5
6
7
8
2
4
6
8
11
13
15
17
3
—
10
13
16
20
23
26
4
—
—
17
22
26
31
35
5
—
—
—
27
33
38
44
6
—
—
—
—
40
46
53
7
—
—
—
—
—
54
62
8
—
—
—
—
—
—
71
Konwencja oznaczania cyfr przy β >10 – kolejne litery alfabetu łacińskiego:
„10”– A, „11”– B, „12”– C, „13”– D, „14”– E, „15”– F, „16”– G,…
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–10
Systemy liczbowe
Dzielenie sekwencyjne
X – dzielna (dividend), D≠ 0 – dzielnik (divisor)
X = Q⋅ D + R, |R| < |D|
→ Q – iloraz (quotient), R – reszta (remainder) z dzielenia X przez D
Równanie dzielenia moŜe mieć 2 rozwiązania spełniające warunek |R| < |D|
|R1–R2| = |D| , 0< − R1, R2< |D|
X – R i = Qi ⋅ D
dzielenie znakowane (signed division) – znak reszty jest taki jak znak dzielnej
dzielenie modularne (modulus division) – znak reszty jest zawsze dodatni
W naturalnym systemie pozycyjnym R ≥ 0 i jeśli X = {xk −1 ,..., x1 , x0 ,..., x− m }β
oraz D = {d l −1 ,..., d1 , d 0 ,..., d − s }β , to z dokładnością β
Q = {qk −l +1 , qk −l ,..., q0 ,...q− p }β =
–p
moŜna obliczyć
∑q β
k −l +1
i =− p
i
i
SL–11
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
PrzybliŜenia ilorazu
Pierwszym przybliŜeniem ilorazu jest {qs ,0,...,0}β = Qs ,1 = qs β s takie, Ŝe
q s β s D ≤ X < (q s + 1) β s D ,
0 ≤ R1 = X − qs β s D < β s D
Dokładniejsze przybliŜenie to {qs , qs −1 ,...,0}β = Qs , 2 = Qs ,1 + qs −1β s −1 takie, Ŝe
qs −1β s −1D ≤ R1 = X − Qs ,1D < (qs −1 + 1) β s −1D ,
0 ≤ R2 = R1 − qs −1β s −1D < β s −1D
Kolejnymi przybliŜeniami ilorazu są zatem Qs ,i +1 = Qs ,i + qs −i β s −i takie, Ŝe
qs −i β s −i D ≤ Ri = X − Qs ,i D < (qs −i + 1) β s −i D ,
0 ≤ Ri +1 = Ri − qs −i β s −i D < β s −i D
co po skalowaniu ( ri = Ri β i −s−1 ) prowadzi do nierówności parametrycznej
0 ≤ ri +1 = β ri − qs −i D < D
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–12
Systemy liczbowe
Systemy naturalne i pozycyjne rozwinięcie liczby
Jednoznaczną reprezentacją liczby X ≥ 0 w systemie naturalnym o podstawie β
jest rozwiązanie równania
{xk −1 ,..., x0 , x−1 ,..., x− m }β =
∑ xi β i = X , gdzie
k −1
i=−m
xi ∈ {0,1,...,β − 1}
Dla części całkowitej XI oraz ułamkowej XF liczby X otrzymamy odpowiednio
X I = ∑ xi β i = x0 + β {x1 + β [ x2 + ...β ( xk − 2 + β xk −1 )]}
k −1
i =0
XF =
∑ xi β i = β −1{x−1 + β −1[ x− 2 + ... + β −1 ( x− m +1 + β −1 x− m )...]}
−1
i =− m
skąd wynika, Ŝe w systemie o podstawie β
• kolejnymi cyframi rozwinięcia części całkowitej XI liczby X są:
x j = I j mod β = I j − β int β −1 I j +1 , I j +1 = int β −1 I j , I 0 = X I
• kolejnymi cyframi rozwinięcia części ułamkowej XF liczby X są
x− j = int β F j , F j +1 = β F j − x− j , F1 = X F
SL–13
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Konwersja części całkowitej liczby
Procedura (na podstawie rozwinięcia Hornera)
1. Podziel liczbę przez podstawę systemu docelowego β
2. Otrzymana reszta jest kolejną cyfrą rozwinięcia pozycyjnego
3. Otrzymany iloraz ponownie poddaj procedurze
4. Powtarzaj dopóki nie uzyskasz ilorazu równego 0
Algorytm wyznaczania reprezentacji części całkowitej (A naturalne)
0. X(0) = A
i=0
1. X(i+1) = int(X(i) / β)
2. xi = X(i) – β X(i+1)
3. i ++
4. if X(i+1) ≠ 0 goto 1
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
; podstaw wartości początkowe
; iloraz całkowity
; reszta
; zwiększ i
; powtarzaj dopóki iloraz ≠ 0
SL–14
Systemy liczbowe
Konwersja części ułamkowej liczby
Procedura (na podstawie rozwinięcia rekurencyjnego)
1. PomnóŜ ułamek przez podstawę systemu docelowego β
2. Część całkowita iloczynu kolejną cyfrą rozwinięcia pozycyjnego
3. Część ułamkową iloczynu ponownie poddaj procedurze
4. Powtarzaj tak długo aŜ:
a) uzyskasz wymaganą dokładność β–m (odpowiednią liczbę cyfr)
b) otrzymasz iloczyn równy 0
c) wykryjesz okresowość (pojawi się ponownie taki sam ułamek)
Reprezentacja części ułamkowej (A < 1) z dokładnością β – m
; podstaw wartości początkowe
0. X(0) = A, x0 = 0
i=0
1. x–i = int(β X(i) )
2. X(i+1) = β X(i) – x–i
3. i ++
4. if i ≤ m goto 1
; część całkowita iloczynu
; część ułamkowa iloczynu
; zwiększ i
; powtarzaj dopóki mała dokładność
SL–15
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Konwersja bazy (podstawy) w systemach naturalnych
• X = |{xk–1, xk–1, …, x–m}β | ⇒ działania w systemie o podstawie β
→ mnoŜenie lub dzielenie przez ω = |{bp, …, b1, b0}β |
• wyniki {zs–1, zs–1, …, z–r}ω – w systemie o podstawie ω ( s ≤ k logω β )
WŁAŚCIWOŚĆ konwersji ułamka
Jeśli kaŜdy dzielnik podstawy źródłowej β jest dzielnikiem podstawy docelowej
ω, to wynikiem konwersji ułamka skończonego jest ułamek skończony
F=
∑ xi β i & ∀p ∈ P : ( p, β ) = p : ( p,ω ) = p ⇒ ∃r < ∞ : F =
∑ zi ω i
i = −1
i = −1
i =− m
i =− r
D o w ó d . Jeśli F jest ułamkiem skończonym m-pozycyjnym w bazie β, to
F=
∑ xi β
−1
i=−m
i
=β
−m
∑ xi −m β i = Aβ − m ,
m −1
i =0
0 ≤ A ≤ β m − 1, A ∈ N .
F ma skończone rozwinięcie takŜe w bazie ω, jeŜeli istnieje B∈N i r < ∞ takie,
Ŝe F = Bω − r , 0 ≤ B ≤ ω r − 1. ZałóŜmy, Ŝe (p,ω) = 1. Ale wówczas byłoby
Aω r = Bβ m & ( p, ω ) = 1 & ( p, β ) = p ⇒ ( p m , A) = p m ,
więc rozwinięcie F byłoby nieskończone, chyba Ŝe A = k pm.
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–16
Systemy liczbowe
Konwersja ułamków okresowych w systemach naturalnych
Wynikiem konwersji ułamka okresowego jest ułamek skończony lub okresowy
Reguła:
Wartość ułamka pomnóŜ przez podstawę systemu docelowego
– część całkowita wyniku to kolejna cyfra rozwinięcia,
– część ułamkowa podlega dalszej procedurze
Zamiana ułamka okresowego na ułamek wymierny
1 
z β −c  1 
z β −c 
=
x+ c

0, x−1...x− k ( z − k −1...z − k − c ) β = k  x +
β  1 − β −c  β k 
β − 1 
x = β k |{x−1, … , x−k}| β , z = β c |{z−k−1, … , z−k−m}| β
k – liczba pozycji części nieokresowej ułamka, c – liczba pozycji okresu
Uwaga
Ułamek skończony w bazie danej β moŜe być okresowy w bazie docelowej ω
SL–17
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Konwersja bazy skojarzonej w systemach naturalnych
Konwersja (β)→(β s) lub (β s)→(β)
Jeśli z r = x rs + s −1 β s −1 + ... + x rs +1 β + x rs ( xi = 0,1,..., β − 1 ⇔ zs = 0,1,..., β s − 1), to
∑ xi β i =
k −1
i =− m
∑
k
/ s  −1
zr ( β s ) r
r = − m / s 
zatem {xk −1 ,..., x1 , x0 ,..., x− m }β = {z s −1 ,..., z1 , z 0 ,..., z − r }β ;
s
Konwersja (β k)→(β ):
s
s
(β k)→(β ) ⇔ (β k)→(β ) || (β ) →(β )
s
ω <β s ⇒ zamiast konwersji (ω )→(β ) wygodniej realizować (ω )→(β s)
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–18
Systemy liczbowe
Konwersja bazy (podstawy) w systemach naturalnych – przykłady
157,38610→X8→Z2 oraz 157,38610→X9→Z3 (8=23 9=32).
Ii
mod 23
×23 Fi
Ii mod 32
157
0 386
157
19 5 =x0
x-1 = 3 088
17 4 =x0
2 3 =x1
x-2 = 0 704
1 8 =x1
0 2 =x2
x-3 = 5 632
0 1 =x2
157,38610 = 235,305...8 = 10011101,011000101...2
×32
0
x-1 = 3
x-2 = 4
x-3 = 2
Fi
386
474
266
394
157,38610 = 184,3429 = 12211,101102...3.
235,3058→X10 oraz 235,3058→X9→Z3 (działania w systemie ósemkowym)
Ii mod 128 ×128
Fi
Ii
mod 118
×3
2358
0 3058
2358
0
178 7 =x0
x-1 = 3 6628
218 4 =x0
x-1 = 3
1 5 =x1
x-2 = 108 3648
1 8 =x1
x-2 = 4
0 1 =x2
x-3 = 4 6108
0 1 =x2
x-3 = 1
235,3058 =157,384...10 = 184,341...9 = 12211,101101...3.
Fi
3058
3558
1258
3758
SL–19
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Konwersja bazy ułamków okresowych w systemach naturalnych
bezpośrednio – mnoŜenie z korekcją
dowolny ułamek
53210
→ X8
0,5(37)10 =
99010
×8
×8
0
29610 425610
=
x–1 = 4 +
99010 99010
38810 236810
=
x–2 = 2 +
99010 99010
13410 310410
=
x–3 = 3 +
99010 99010
identyfikacja cykli
tylko 0,(xy...z)β
0,5(37)10→X8
×8
0,(386)10→X7
Fi
0 5 37 37 37 …
x–1 = 4 2 98 98 96
2 98 98 98
Fi
0 (386)
x–1 = 2 (702)
(704)
x–2 = 2 3 91 91 84
3 91 91 91
x–2 =
4 (928)
(932)
x–3 = 3 1 35 35 28
1 35 35 35
x–3 =
6 (524)
(530)
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
×7
SL–20
Systemy liczbowe
Stałoprzecinkowe reprezentacje liczb ujemnych
Reprezentacja znak-moduł
X = {s} || {xk −1 ,..., x1 , x0 ,..., x− m }β
X = (−1) s
∑ xi β i ,
k −1
xi ∈{0,1,...,β − 1},
i=− m
s ∈ {0,1}
• dwie reprezentacje zera : „+ 0” i „− 0”.
• zakres liczb symetryczny
System negabazowy (z bazą ujemną) wi = ( − β ) i , β ≥2
X = {xk −1 , xk − 2 ,..., x0 , x−1 ,..., x− m }− β =
∑ xi (− β ) i ,
k −1
i=−m
xi ∈ {0,1,...,β − 1}
• znaczna asymetria (dodatnia jeśli k nieparzyste, ujemna gdy k parzyste)
β −1
[(− β ) − m − (− β ) k ]
Q=
β +1
• znak liczby określa indeks najbardziej znaczącej pozycji niezerowej k
• zmiana znaku wykonalna tylko dla około 2/(β+1) liczb
SL–21
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Dopełnienie i odwrotność addytywna liczby
Dopełnienie liczby X = {xk −1 ,..., x1 , x0 ,..., x− m }β (digit-complement)
X = {xk −1 ,..., x1 , x0 ,..., x− m : xi = ( β − 1) − xi }β
X + X = {β − 1,..., β − 1}β = Q
X=X i Q=0
Jeśli jest wykonalne działanie X + Y , to mamy
X − Y = (Q − X) − Y = Q − ( X + Y ) = X + Y
Odwrotność addytywna liczby X = {xk −1 ,..., x1 , x0 ,..., x− m }β – liczba przeciwna
~
~
X = {~
x ,..., ~
x ,~
x ,..., ~
x } ⇔ X+X=0
k −1
1
0
−m β
~
W systemie, w którym istnieje liczba Q :
~
~
~
X=0−X=Q+Q−X=Q+X
~
X − Y = X + ( Y + Q)
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–22
Systemy liczbowe
Systemy uzupełnieniowe i dopełnieniowe
Odwrotność addytywną reprezentuje uzupełnienie (dopełnienie do bazy R)
~
~
X = R − X ⇔ X = −X
Uzupełnienie (jeśli wykonalne) jest działaniem odwracalnym
~
~
~
~
~
X = R − X = R − ( R − X) = X ,
R = 0 ⇒ | R |= 0
Systemy komplementarne ( Q = {β − 1,..., β − 1, β − 1}, ulp = {0,...,0,1})
• do podstawy (radix-complement), uzupełnieniowe (pełne) –
~
Q = R − Q = ulp
o nie istnieje reprezentacja R = Q + ulp
~
o unikatowa reprezentacja zera: 0 = R nie ma reprezentacji
• do cyfry (digit-complement), dopełnieniowe, niepełne (diminished r.-c.)
~
~
Q = R − Q = 0, 0 = R − 0 = Q
o R = Q → dwie reprezentacje zera: 0 oraz Q
SL–23
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Uzupełnienie –reprezentacja liczby przeciwnej
X = {xk −1 ,..., x1 , x0 ,..., x− m : xi = ( β − 1) − xi }β = Q − X – dopełnienie liczby X
odwrotność addytywną (liczbę przeciwną) – jeśli istnieje – reprezentuje
~
X = R − X = X + (R − Q)
• w systemie uzupełnieniowym (pełnym) R = Q + ulp, więc
~
X = R − X = X + ulp
• w systemie dopełnieniowym (niepełnym) R = Q, więc
~
X= R−X= X
~
W systemie uzupełnieniowym liczba Q zawsze istnieje, ergo
⇒ kaŜde odejmowanie moŜna zastąpić dodawaniem
~
~
X − Y = X + Y = X + Y + (R − Q) = X + Y + Q
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–24
Systemy liczbowe
Właściwości systemów uzupełnieniowych
Reprezentacja liczb dodatnich – jak w kreującym systemie naturalnym
! Q nie jest miarą asymetrii w systemie uzupełnieniowym.
JeŜeli podstawa systemu β jest liczbą nieparzystą, to
• w systemach dopełnieniowych musi wystąpić niewielka asymetria
• w systemach uzupełnieniowych zakres liczb moŜe być symetryczny
• trudne wykrycie znaku – niezbędne testowanie wszystkich pozycji
Jeśli podstawa systemu β jest liczbą parzystą, to
• w systemach dopełnieniowych zakres liczb moŜe być symetryczny
• w systemach uzupełnieniowych musi wystąpić niewielka asymetria
• moŜliwe łatwe wykrycie znaku („+” gdy 2 xk −1 < β , „–” gdy 2 xk −1 ≥ β ),
⇒ w systemach pełnych ujemna asymetria.
⇒ podstawa systemu komplementarnego β jest zwykle liczbą parzystą
• uzupełnieniowy do podstawy β (U2/ 2’s complement, U10/ 10’s compl.)
• dopełnieniowy do cyfr β − 1 (U1/ 1s’ complement/ D1)
SL–25
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Dodawanie i odejmowanie w systemach uzupełnieniowych
W systemach naturalnych reprezentacją liczby większej (mniejszej) o jednostkę
(ulp=β–m o reprezentacji {0,…,0,1}) od danej jest wynik pozycyjnego dodania
(odjęcia) ulp do (od) tej liczby.
• przeniesienie z pozycji najwyŜszej świadczy o niewykonalności działania
Brak argumentów przeciw stosowaniu reguły w systemach uzupełnieniowych
(reprezentacją liczby przeciwnej jest 0 –X}
• dodawanie i odejmowanie jednostki moŜna wykonać zgodnie z regułą
(i)
xi ± yi ± ci = si ± βci +1 ,
• dodanie jednostki β–m do liczby największej ujemnej {β − 1,..., β − 1, β − 1}
o wartości „–β–m”, zgodnie z regułą (i) daje w wyniku poprawne 0
• odjęcie jednostki β–m od 0, zgodnie z regułą (i) daje {β − 1,..., β − 1, β − 1}
• problem wykonalności działania
o jednopozycyjne rozszerzenie zakresu zapewnia poprawność wyniku
kaŜdego dodawania lub odejmowania wykonanego zgodnie z regułą (i)
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–26
Systemy liczbowe
Reprezentacja uzupełnieniowa w systemie pełnym i niepełnym
podstawa β parzysta
1
k
U2
–m 1
/2 β −β
/2 β –1
k
–m 1
/2 β −2β
/2 β –1
… …
–m
0
+β
0
0
–m
−β
β –1
–m
−2β
β –1
… …
k
–m
1
−1/2 β +β
/2 β
k
1
1
/2 β
− /2 β
R =β k
1
β –1
β –1
β –1
β –1
…
0
0
β –1
β –1
…
0
0
…
0
0
β –1
β –1
…
0
0
...
...
…
...
...
...
...
…
...
...
β –1
β –1
β –1
β –1
β –1
β –2
…
0
0
β –1
β –1
…
0
0
…
0
0
β –1
β –1
…
0
0
…
1
0
β –1
β –2
…
1
0
XUβ = xk −1β k −1 + ∑ xi β i ,
D1/U1
k
–m
/2 β −β
k
–m
1
/2 β −2β
…
–m
+β
+0
−0
–m
−β
…
k
–m
−1/2 β +2β
k
–m
−1/2 β +β
–m
R =β k−β
1
k −2
XUβ ≥ 0 ⇒
i =− m
XUβ = xk −1 β k −1 − R +
XUβ < 0 ⇒
∑ xi β i
k −2
i=−m
SL–27
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Wartość liczby w systemie komplementarnym
| XUβ | = [ xk −1 β k −1 −ϕ ( xk −1 ) R] +
∑ xi β i ,
k −2
i=−m
gdzie ϕ( xk −1) = 12 (1+ sgn (2 xk −1− β + 1)) – funkcja znaku liczby, R = β k – δ⋅ β – m
(δ = 0 w systemie uzupełnieniowym lub 1 w dopełnieniowym), skąd
| XUβ | = [ xk −1 − β ϕ ( xk −1 )]β k −1 +
∑ xi β i + δ ϕ ( xk −1 ) β − m
k −2
i =− m
Rozszerzenie nieskończone (arytmetyczne)
?
{xk −1 ,..., x1 , x0 ,..., x− m } = {xs −1 ,..., xk , xk −1 ,..., x1 , x0 ,..., x− m ,.x− m −1 ,.., x− p }
→ intuicje
325U10
675U10
(+32510)
(–32510)
00325,00U10
99675,00U10
325U9
674U9
(+32510)
(–32510)
00325,00U9
99674,99U9
Jeśli więc xe = ϕ ( xk −1 )( β − 1) , to
• system uzupełnieniowy:
X e = {..., xe , xk −1 ,..., x−m+1 , x−m ,0,...},
• system uzupełnieniowy:
X e = {..., xe , xk −1 ,..., x−m+1 , x−m , xe ,...}
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–28
Systemy liczbowe
Dwójkowe systemy uzupełnieniowe
β = 2 ⇒ x i ∈ {0,1} ⇒ ϕ ( x k −1 ) = x k −1 ← (bit znaku!)
System uzupełnieniowy do 2 (2’s complement) (U2)
X U 2 = |{xk −1 ,..., x1 , x0 ,..., x− m }U 2 | = − xk −1 2 k −1 +
∑ xi 2 i
k −2
i=−m
Rozszerzenie nieskończone liczby w kodzie U2
Xe = {..., xk −1 , xk −1 , xk − 2 ,..., x− m +1 , x− m ,0,0,...}U2 .
System dopełnieniowy do „1” (1’s complement) (D1/U1)
X U1 = |{xk −1 ,..., x1 , x0 ,..., x− m }U1 | = − xk −1 (2 k −1 − 2 − m ) +
∑ xi 2 i
k −2
i=−m
Rozszerzenie nieskończone liczby w kodzie U1
Xe = {..., xk −1 , xk −1 , xk − 2 ,..., x− m +1 , x− m , xk −1 , xk −1 ,...}U 1 .
Konwersja U1↔U2: |XU1| – |XU2| = x k ulp = x k 2 − m
SL–29
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Kod uzupełnieniowy do 2 (U2) i dopełnieniowy do „1” (niepełny, D1)
1
1
1
1
...
...
1
1
1
1
1
0
D1/U1
+2m−1−1
+2m−1−2
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
...
...
...
...
...
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
+1
+0
−0
−1
−2m−1+1 1
−2m−1 1
R =−2m−1
0
0
0
0
...
...
0
0
0
0
1
0
U2
+2m−1−1 0
+2m−1−2 0
+2
+1
0
−1
−2
| X | = |{xk −1 ,..., x1 , x0 ,..., x− m }| = − xk −1R +
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
−2m−1+2
−2m−1+1
R =−2m−1+1
∑ xi 2i
k −2
i =−m
SL–30
Systemy liczbowe
Reprezentacja spolaryzowana (liczb całkowitych)
przypisanie reprezentacji naturalnej wartości pomniejszonej o N (obciąŜenie)
X =|{xk −1 ,..., x1 , x0 }+ N | = ∑ xi β i − N , 0 < N < β k
k −1
xi ∈ {0,1,..., β − 1}
i =0
reprezentacja z obciąŜeniem N (biased N, excess N)
zalety:
• zakres liczb dodatnich i ujemnych jest niesymetryczny
• unikatowa reprezentacja zera
• zgodność uporządkowania liczb i ich reprezentacji (kodów)
wady:
• konieczność korekcji wyników działań arytmetycznych
• problematyczne uŜycie w mnoŜeniu lub dzieleniu
reprezentacja spolaryzowana quasisymetryczna (Q = β k – 1 – 2N)
• z asymetrią ujemną N = 12 β k (Q = – 1)
• z asymetrią dodatnią N = 12 β k − 1 (Q = + 1)
SL–31
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Reprezentacja spolaryzowana liczb całkowitych w systemie dwójkowym
N = 2m–1
2m−1−1
2m−1−2
...
0
−1
...
−2m−1+1
−2m−1
1
1
...
1
0
...
0
0
1
1
...
0
1
...
0
0
1
1
...
0
1
...
0
0
...
...
...
...
...
...
...
...
1
1
...
0
1
...
0
0
1
1
...
0
1
...
0
0
1
0
...
0
1
...
1
0
N = 2m–1−1
2m−1
2m−1−1
...
1
0
...
−2m−1+2
−2m−1+1
• porządek liczb zgodny z porządkiem kodów
• dodawanie i odejmowanie wymaga korekcji
• łatwa konwersja na kod U2 i odwrotnie
{xm −1 , xm − 2 ,..., x1 , x0 }U2 = {(1 − xm −1 ), xm − 2 ,..., x1 , x0 }+ 2↑ m
− {xm −1 , xm − 2 ,..., x1 , x0 }U2 = {xm −1 , (1 − xm − 2 ),..., (1 − x1 ), (1 − x0 )}+ 2↑ m -1
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–32
Systemy liczbowe
Dwójkowa reprezentacja spolaryzowana i uzupełnieniowa
Gdy N = 2 k −1 jest
X + N = ∑ xi 2 i − 2 k −1 = −(1 − xk −1 )2 k −1 + ∑ xi 2 i ,
k −1
k −2
i =0
i =0
⇒ {xk −1 , xk − 2 ,..., x0 }U2 = {xk −1 , xk − 2 ,..., x0 }+ 2↑ k −1
Gdy N = 2 k −1 − 1 , to poniewaŜ (2 k −1 − 1) = ∑ 2 i , więc otrzymamy
k −2
i =0
k −2


X + N = ∑ xi 2 i −(2 k −1 − 1) = xk −1 2 k −1 + ∑ ( xi − 1)2 i = − − xk −1 2 k −1 + ∑ (1 − xi )2 i 


i =0
i =0
i=0
k −1
k −2
⇒ {xk −1 , xk − 2 ,..., x− m }U2 = {xk −1 , xk − 2 ,..., x− m }+ 2↑ ( k −1) −1
SL–33
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Reprezentacje dziesiętne kodowane dwójkowo
• do binarnego zakodowania jednej z β cyfr potrzeba log2β bitów
Kod BCD (Binary Coded Decimal)
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0
1
2
3
4
5
6
7
8
9 –
–
–
–
–
–
9 –
–
–
Kod BCD+3 i jego dopełnienie
–
–
–
0
1
2
3
4
5
6
7
8
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000
–
–
–
9 −0 9 −1 9 −2 9 −3 9 −4 9 −5 9 −6 9 −7 9 −8 9 −9 –
–
–
• samo-dopełnianie – negacja bitów cyfry → dopełnienie wartości cyfry
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–34
Systemy liczbowe
Reprezentacja nadmiarowa – system ze znakowaną cyfrą (SD)
System stałobazowy (pozycyjny) 〈β,1
1,D〉
• zbiór cyfr D = {a ,...,1 ,0,1,..., a − 1, a},
| XSD | =
∑ xi β i ,
n −1
i=−m
a ≤ β − 1 ≤ 2a,
xi ∈ {a ,...,1 ,0,1,..., a − 1, a},
d = −d
a ≤ β − 1 ≤ 2a
− {xk −1 , xk − 2 ,..., x− m }SD = {− xk −1 ,− xk − 2 ,...,− x− m }SD
XSD = X + − X − :
X + = {0, xk+−1 ,..., x−+m +1 , x−+m }β ,
 0, gdy xi < 0,
xi+ = 
 xi , gdy xi ≥ 0,
 0, gdy xi ≥ 0,
xi− = 
− xi , gdy xi < 0.
X + − X − – wykonalne w systemie SD, jak i w systemie uzupełnieniowym
X − = {0, xk−−1 ,..., x−−m +1 , x−−m }β ,
Konwersja odwrotna moŜe być niejednoznaczna – wiele reprezentacji liczby.
SL–35
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Reprezentacja minimalna w dwójkowym systemie SD
reprezentacja minimalna Z ={z k −1 ,.., z − m +1 , z − m } – zawierająca najwięcej zer
∃
[
∀
s ≤ k −1 s < j ≤ k −1
( z j = 1) ∨
∀
s < j ≤ k −1
( z j = 1 )] ∧ [
∀
− m +1≤ i ≤ s −1
( z i z i −1 = 0)]
DOWÓD (dla dwójkowego systemu SD):
• ciąg zawierający izolowaną cyfrę 1 lub 1 nie daje się minimalizować
• izolowany ciąg 1 lub 1 (...,0, x,..., x,0,...) jest równowaŜny (..., x,0,..., x ,0,...)
• {..., x, b, b , z ,...} = {..., x,0, b, z ,...} , b = 1,1
•
nie da się przekodować ciągu cyfr 1 lub 1 na najwyŜszych pozycjach.
reprezentacja kanoniczna – minimalna z wykluczeniem sąsiadujących nie-zer
Jest k reprezentacji liczby –1 oraz k reprezentacji liczby +1
–1 = {0, 0, …, 0, –1} = {0, 0, …, –1, 1} = … = {–1, 1, …, 1, 1}
• liczb reprezentowanych jest 2⋅2 k , róŜnych reprezentacji jest 3k
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–36
Systemy liczbowe
Kod uzupełnieniowy do 10 (U10) i dopełnieniowy do „9” (niepełny, D9/U9)
U10
+5∗10 −1
+5∗10k−1−2
k−1
(0)
(0)
…
(0)
(0)
0
(9)
(9)
…
(9)
(9)
9
8
…
2
1
0
9
8
…
2
1
|X| = |{ x k −1 ,..., x1 , x 0 ,..., x − m }| = −ϕ ( x k −1 )R +
∑x β
−5∗10k−1+1
−5∗10k−1
R =−10k−1
9
9
…
0
0
0
9
9
…
0
0
…
…
…
…
…
…
…
…
…
…
…
9
9
…
0
0
0
9
9
…
0
0
+2
+1
0
−1
−2
4
4
…
0
0
0
9
9
…
5
5
9
9
…
0
0
0
9
9
…
0
0
9
9
…
0
0
0
9
9
…
0
0
k −1
i=−m
i
D9/U9
+5∗10k−1−1
+5∗10k−1−2
+1
+0
−0
−1
−5∗10k−1+2
−5∗10k−1+1
R =−10k−1+1
i
SL–31a
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
Systemy liczbowe
Kod uzupełnieniowy do 8 (U8) i dopełnieniowy do „7” (niepełny, D7/U7)
U9
+4∗8k−1−1
+4∗8k−1−2
(0)
(0)
…
(0)
(0)
0
(7)
(7)
…
(7)
(7)
7
6
…
2
1
0
7
6
…
2
1
|X| = |{ x k −1 ,..., x1 , x 0 ,..., x − m }| = −ϕ ( x k −1 )R +
∑x β
−4∗8k−1+1
−4∗8k−1
R =−8k−1
7
7
…
0
0
0
7
7
…
0
0
...
...
…
...
...
...
...
...
…
...
...
7
7
…
0
0
0
7
7
…
0
0
+2
+1
0
−1
−2
3
3
…
0
0
0
7
7
…
4
4
7
7
…
0
0
0
7
7
…
0
0
7
7
…
0
0
0
7
7
…
0
0
k −1
i=−m
i
D7/U7
+4∗8k−1−1
+4∗8k−1−2
+2
+1
+0
−0
−1
−4∗8k−1+2
−4∗8k−1+1
R =−8k−1+1
i
R = β – ε ⋅ ulp
k
© Janusz Biernat, Systemy liczbowe'04, 4 listopada 2004
SL–31b

Podobne dokumenty