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