ćwiczenia kongruencji modulo n
Transkrypt
ćwiczenia kongruencji modulo n
Janusz Biernat, profesor nadzw. Politechnika Wrocławska Wydział Elektroniki Instytut Informatyki, Automatyki i Robotyki Zakład Architektury Komputerów ARYTMETYKA KOMPUTERÓW ↸ Wrocław p. 201 bud. C3 ( 071 320 3916 (071 320 2745) - [email protected] http://www.zak.ict.pwr.wroc.pl/materialy/arytmetyka ARYTMETYKA KOMPUTERÓW – program wykładu 2006 1. Reprezentacje stałoprzecinkowe dodatnich liczb wymiernych, konwersje podstawy. 2. Reprezentacje liczb znakowanych - uzupełnieniowa, spolaryzowana, SD. Dodawanie i odejmowanie liczb znakowanych, nadmiar. 3. Mno enie w systemach uzupełnieniowych. Algorytm Booth’a-McSorleya. 4. Dzielenie w systemach uzupełnieniowych. Obliczanie pierwiastka kwadratowego. 5. Kongruencje. Twierdzenie Eulera. Chi skie twierdzenie o resztach. Systemy resztowe RNS. Konwersja na reprezentacj RNS i konwersja odwrotna. 6. Rozszerzanie zakresu działa arytmetycznych. Reprezentacje zmiennoprzecinkowe. Standard IEEE754. Obliczenia zmiennoprzecinkowe, dokładno , zaokr glanie. 7. Dzielenie numeryczne. Metoda Newtona-Raphsona. Algorytm CORDIC – obliczanie funkcji elementarnych. 8. Kolokwium (algorytmy oblicze ). 9. Podstawy algebry Boole'a, realizacja funkcji logicznych. Sumatory. 10. Szybkie sumatory stałoprzecinkowe (CSA, PPA, COSA, CSLA, CSKA). 11. Układy szybkiego mno enia liczb w reprezentacjach stałoprzecinkowych. 12. Przy pieszanie dzielenia i obliczania pierwiastka kwadratowego. 13. Kolokwium (układy cyfrowe). 14. Architektura układów arytmetyki resztowej RNS. ARYTMETYKA KOMPUTERÓW – program ćwiczeń Kodowanie liczb, konwersje podstawy Dodawanie i odejmowanie w systemach naturalnych i uzupełnieniowych Mno enie Dzielenie i obliczanie pierwiastka kwadratowego Arytmetyka resztowa Arytmetyka zmiennoprzecinkowa i obliczenia numeryczne Logika i układy cyfrowe Układy mno ce Układy arytmetyki resztowej Arytmometr zmiennoprzecinkowy Literatura Literatura podstawowa J.BIERNAT, Metody i układy arytmetyki komputerowej, Wrocław, Oficyna Wydawnicza Politechniki Wrocławskiej, 2001. I.KOREN, Computer Arithmetic Algorithms, A.K.Peters, Natick, MA, 2002 (wyd.1: Prentice Hall, Englewood Cliffs, NJ, 1993). R.ZIMMERMANN, Lecture Notes on Computer Arithmetic: Principles, Architectures and VLSI Design, Institut für Integrierte Systeme, Eidgenössische Technische Hochschule, Zurich, March, 1999. ą Literatura uzupełniaj ca B.PARHAMI, Computer Arithmetic. Algorithms and Hardware Designs, New York-Oxford, Oxford University Press, 2000 J-M.MUELLER, Elementary functions. Boston: Birkhauser 1997 B.POCHOPIE , Arytmetyka w systemach cyfrowych, Warszawa, AOW Exit, 2004 (Arytmetyka systemów komputerowych, Gliwice, Wyd. Polit. l skiej, 2000, wyd.V) J.BIERNAT, Architektura komputerów, Wrocław, Oficyna Wydawnicza Politechniki Wrocławskiej, 2005 (wyd.IV). J.BIERNAT, Arytmetyka komputerów, Warszawa, PWN, 1996. N.KOBLITZ, Wykład z teorii liczb i kryptografii, WNT, 1995. S.WASSER, M.J.FLYNN, Introduction to arithmetic for digital system designers, New York, Holt, Rinehart, Winston 1982. Arytmetyka Algebra – abstrakcyjne uogólnienie arytmetyki System algebraiczny – zbiór z działaniami zamkni tymi w tym zbiorze • grupa (ang. group) – zbiór z jednym działaniem ł cznym (dodawanie) istnieje element przeciwny do ka dego oraz element neutralny – w grupie mo na „dodawa ” i „odejmowa ” • pier cie (ang. ring) – zbiór z dwoma działaniami (dodawanie, mno enie): grupa przemienna wzgl dem dodawania, zamkni ty dla mno enia „mno enie” jest ł czne i obustronnie rozdzielne wzgl dem „dodawania” – w pier cieniu mo na „dodawa ”, „odejmowa ” i „mno y ” Pier cie przemienny (niesko czony) liczb całkowitych . • ciało (ang. field) – zbiór z dwoma powi zanymi działaniami przemiennymi jest grup ze wzgl du na dodawanie, dodawanie rozdzielne wzgl dem mno enia, a bez elementu „0” jest grup ze wzgl du na „mno enie” –w ciele mo na „dodawa ”, „odejmowa ”, „mno y ” i „dzieli ” (mno y przez odwrotno ) ź Ciała liczb: całkowitych modulo liczba pierwsza p p (sko czone) wymiernych ; rzeczywistych ; zespolonych (niesko czone). © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 AR–I Arytmetyka Arytmetyka Teoria liczb – wła ciwo ci liczb naturalnych Sposoby obliczania wyniku działa podstawowych (arytmetycznych) • odejmowanie i dodawanie (... mo na wykona przez odejmowanie) • mno enie – sekwencyjne lub równoległe o skalowanie – mno enie przez całkowit pot g bazy • dzielenie – sekwencyjne lub mno enie przez odwrotno dzielnika • wyci ganie pierwiastka kwadratowego – sekwencyjne Arytmetyka klasyczna – dowolny rozmiar liczb (rozszerzenia niesko czone) ✧ problem – algorytm (jak to zrobi ?) ź Arytmetyka komputerowa – ograniczony zakres argumentów ✧ problem – nadmiar (przekroczenie zakresu) ✧ problem – szybko wykonania działa ✧ problem – dokładno wyniku © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 AR–II Arytmetyka Dokładno i szybko oblicze Dodawanie, odejmowanie, mno enie • argumenty dokładne – wynik tak e dokładny • argumenty przybli one ze znan dokładno ci : – łatwa kontrola dokładno ci wyniku, kumulacja bł dów przybli e Dzielenie, obliczanie pierwiastka kwadratowego • wynik zwykle niedokładny (nawet gdy argumenty s dokładne) • konieczna kontrola dokładno ci wyniku WNIOSEK: Nale y najpierw wykona działania dokładne. Obliczenia: działania składowe + przepis (algorytm) ź działania składowe: • elementarne – szybkie → czasochłonny algorytm (program) • zło one – czasochłonne → prosty krótki algorytm (układ cyfrowy) © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 AR–III Arytmetyka Liczby i cyfry Liczba – abstrakcyjny wynik oblicze , warto , opis ilo ciowy obiektu Cyfra – znak (symbol) u ywany do zapisu (reprezentacji) liczb Cyfry rzymskie D /(V) M /((I)) pi set tysi c 5 tysi cy 10 tysi cy 6 7 8 9 7 8 9 D pi dziesi t sto ę ę ą ę ą ć C ę dziesi ę pi ę jeden M / (I) L ć X ć V ć I Cyfry arabskie (pochodz ce z Persji) 0 1 2 3 4 5 Cyfry indyjskie, u ywane w zapisie w j zyku arabskim 0 1 2 3 4 5 6 Umowa (niepisana) o zapisie cyfr o warto ciach wi kszych od dziewi ciu 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ź 0 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 „10“ „11“ „12“ „13“ „14“ „15“ A B C D E F AR–IV Systemy liczenia Miary i liczby – systemy wagowe – system pomiaru czasu – 1 doba =24 h, 1 h=60 min, 1 min =60 s – brytyjski system miar i wag miary odległo ci 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 miary wagi grain (ziarno) – 1 gr (64,79891 mg) dram – 1 dr (1,77185 g) ounce (uncja) – 1 oz = 16 dr = 4371/2 gr pound (funt) – 1 lb = 8 oz stone (kamie ) – 1 st = 14 lb quarter – 1 q = 2 st hundredweight – 1 cwt = 2 q ton (tona) – 1 t = 20 cwt central – 1 st = 100 Ib Systemy abstrakcyjne – system rzymski (tak e babilo ski) (= 2050) (= 2051) (= 2151) (= 2152) jedno pi tka dziesi tka pi dziesi tka ź I V X L © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 C D M D (= 2252) (= 2253) (= 2353) (= 2354) setka pi setka tysi c pi tysi cy SL–I Systemy liczenia Działania w systemach wagowych Systemy wagowe (weighted) • reprezentacja warto ci – zbiór par (liczba, waga), wiele reprezentacji • zb dny (a wi c nieu ywany) symbol zera skomplikowane algorytmy działa : 1q 6st + 2q 1st 2lb 9st 3lb 7oz 9oz M C M X L V I – M D C C X ?? M M M D C L X I I I × I V I 8 yd 9 in 2¼ sqft C M X L I C D I V × !? M C C C X L V ź WNIOSEK: Wagi warto uporz dkowa a zapis unormowa . © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SL–II Systemy liczenia Systemy pozycyjne Systemy pozycyjne (positional, place-value) • wagi uporz dkowane i przypisane pozycjom → niezb dny symbol „zero” • z ka d pozycj (wag ) skojarzona cyfra (mno nik wagi) • reprezentacja liczby – wektor warto ci, zwanych te cyframi (ang. digit) Systemy z ustalon podstaw (radix-based) • stałobazowe (fixed-radix) – waga pozycji = pot ga podstawy (radix) – naturalne – negabazowe (negative radix) – ujemna podstawa (baza) – z cyfr znakowan (signed digit, SD) – cyfry ujemne • uzupełnieniowe (radix-complement) – ujemna waga pozycji najwy szej Systemy z mieszanymi podstawami (mixed-radix) – waga = iloczyn pot g baz × system aramejski – dwunastkowo-pi tkowy (Mezopotamia, Babilon) × system rzymski – regularne wagi przypisane znakom (a nie pozycjom): (I = 2050, V = 2051, X = 2151, L = 2152, C = 2252, D = 2253, M = 2353,...) ź System resztowy (residue number system, RNS) – liczba=: wektor reszt © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SL–III Systemy liczenia Systemy stałobazowe (pozycyjne) System stałobazowy 〈 β,D〉 (fixed-radix), popularnie zwany pozycyjnym: • ustalona podstawa (baza) – zwykle liczba całkowita taka, e |β | ≥ 2 • dla ka dej pozycji okre lone: o reguła tworzenia wag W = {wk −1 ,..., w1 , w0 ,..., w− m }, wi = β i o zbiór dozwolonych cyfr Di = {d ip −1 ,..., d1i , d 0i = 0} , xi∈Di (zawiera zero) Warto ci X liczby o reprezentacji X = {xk −1 ,..., x1 , x0 ,..., x−m }β , xi ∈ Di , jest: X = xk −1β k −1 −1 + ... + x1β + x0 + x−1β ... + x−m β −m = i = k −1 ∑ xi β i i =− m • dokładno bezwzgl dna = waga najmniej znacz cej pozycji ulp = β • standardowy zbiór cyfr D = {0,1,..., β − 1}, β∈ (β ≥ 2) • redundantny zbiór cyfr ||D+|| > β −m ź D+ = {0, d1 = 1 + a1β , d 2 = 2 + a2 β ,..., d β −1 = β − 1 + aβ −1β , d β , d β +1 ,...} © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SL–IV Systemy liczenia Popularne systemy pozycyjne naturalny 〈 β,D〉 , β ≥ 2, • standardowy zbiór cyfr D = {0,1,..., β − 1} z cyfr znakowan (signed digit, SD) 〈 β,D〉 , reprezentacja liczb ujemnych • zbiór cyfr: D = {dp–1, ..., d1, d0 = 0; p ≥ β , |di|< β }, dozwolone s ujemne warto ci cyfr, np. D={…, 2, 1, 0, 1, 2, …} • nieredundantny De = {0, d1 ,..., d β −1}, d i ≡ i mod β Np: β = 10, D={0,1,8,3,4,5,4,7,2,1} (d = −d): 2 = 18, 56 = 144, 63 = 143 negabazowy 〈 β,D〉 , −β ≥ 2, reprezentacja liczb ujemnych • standardowy zbiór cyfr: D = {0,1,..., β − 1} • (du a asymetria), specyficzna arytmetyka ź uzupełnieniowy (radix-complement) 〈 β, D/DH〉 • niestandardowy i nieredundantny zbiór cyfr na pozycji najwy szej, DH = {–α ,–α +1 ,…,0,1, …, (β –1–α )}, 2α = β © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SL–V Systemy liczenia Reprezentacje systematyczne liczb Reprezentacje stałoprzecinkowe – stałobazowe (i uzupełnieniowe) ustalone poło enie przecinka pozycyjnego 327145,12310 , 0,000000000003145910 , 327145,1238 , 010111010112 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,27145123 E5 ( = 3,2714512310×105), −31415,910×10–4, 1,010012×21011 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, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SL–VI Systemy liczenia Dodawanie i odejmowanie w systemach stałobazowych X = {xk −1 ,..., x1 , x0 ,..., x− m }β , Y = { yk −1 ,..., y1 , y0 ,..., y− m }β , xi , yi ∈ Di ⇓ ( si ∈ Di ) 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: 1 x i ± y i ± c i = ± β c i + + si , x i y i si ∈ D i 1 1 • standardowy zbiór cyfr: Di = D = {0,1,…, β − 1} – rozwi zaniem jest: ci + = xi ± y i ± c i < β xi ± y i ± c i si = ci + = xi ± y i ± c i ≥ β xi ± y i ± c i m β ź 1 • niestandardowy zbiór cyfr D = {0, d 1 ,d 2 ,…,d β − 1 ,…; d i mod β = i } si = xi ± y i ± c i m kβ , k mod β ∈ D ci + = k © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SL–VII Systemy liczenia Jednoznaczno reprezentacji stałobazowej TWIERDZENIE Reprezentacja liczby w standardowym 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 Z kolei, warto j +1 − β −m . 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, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SL–VIII Działania 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 c–m+2 s–m+2 x–m+1 y–m+1 c–m+1 s–m+1 x–m y–m s–m … ź ck ck–1 sk–1 ck–2 sk–2 x–m+2 y–m+2 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 DZ–I Działania Dodawanie wieloargumentowe w systemach naturalnych (1) • dodawanie jest przemienne i ł czne, wi c: n −1 n −1 n −1 n −1 X + Y + Z + ... = ∑ xi β + ∑ yi β + ∑ zi β + ... = ∑ ( xi + yi + zi ...)β i i i =0 i i =0 i i =0 i =0 • ka da suma warto ci cyfr na ka dej pozycji i mo e by zapisana jako liczba wielocyfrowa o wadze takiej jak waga pozycji (β i): xi + yi + ... + zi = ... + β 2 ri + 2 + β vi +1 + ui przy tym xi , yi ,..., zi , ui , vi +1 , ri + 2 ∈ {0,1,..., β − 1} • je li suma oryginalna X+Y+Z+... ma m składników, to suma: n +... n −1 n n +1 X + Y + Z ... = ∑ (ui + vi + ri ...) β = ∑ ui β + ∑ vi β + ∑ ri β i + ... = U + R + V ... i i =0 i =0 i i i =1 i =2 ź ma około 1+log β m składników, czyli znacznie mniej ni X+Y+Z+.. © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 DZ–II Działania Dodawanie wieloargumentowe w systemach naturalnych (2) 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 ± xk–2 yk–2 … zk–2 uk–2 vk–2 sk–2 xk–3 yk–3 … zk–3 uk–3 … … … … … … … v–m+4 … ź vk sk xk–1 yk–1 … zk–1 uk–1 vk–1 sk–1 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 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 DZ–III Działania 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 i A ⋅ X = A ⋅ ∑ xi β = ∑ β i ( xi A) i =− m i=− m algorytm pisemny – dodawanie skalowanych iloczynów cz ciowych ( S −m = 0 ) S i +1 = S i + β i ( xi A) , i = −m, −m+1,...,k−1 algorytm dodaj-przesu (add-and-shift) – skalowanie sum cz ciowych Pi = β −i S i Pi +1 = β −1 ( Pi + x i A) k −1 β Pk = P− m + A{ ∑ xi β i } = A ⋅ X k ź i=−m © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 DZ–IV Działania Konstrukcja tabliczki mno enia w systemach naturalnych (1) • dla 1≤k≤β − 1 cyframi iloczynu k⋅(β − 1) s k− 1 i β – k (suma równa β – 1): k ( β − 1) = (k − 1) β + ( β − k ) = (k − 1) β 1 + ( β − k ) β 0 • iloczyn jest przemienny (a*b=b*a) – wystarczy wypełni od przek tnej • odległo ci liczb w rz dach i kolumnach s stałe • przek tna: x2=(x–1)(x+1)+1 (np. 32=(3–1)*(3+1)+1=4*2+1 →+2 →+3 →+4 →+5 β ↓+2 2 4 6 8 ↓+3 ↓+4 ↓+5 … 3 4 5 6 8 9 3*4 5*3 4*3 5*3+1 66**44++11 5*3 … … … … … … ↑–3 … 2 3 4 5 … … … β−2 β−1 1(β−2) 2(β−3) 3(β−4) 4(β−5) ↑–2 ↑–5 β−1 1(β−2) –2 ← 2(β−3) –3 ← 3(β−4) –4 ← … … –5 ← … … … … (β−4)4 (β−3)2 … (β−3)2 (β−2)1 suma cyfr β−1 oblicze mo na wykona bez przeniesie … ź WNIOSEK: wi kszo ↑–4 β−2 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 DZ–V Działania Konstrukcja tabliczki mno enia w systemach naturalnych (2) • odległo ci przek tnych te s stałe • przek tne „styczne wierzchołkami” odliczane od przek tnej głównej te mo na wypełnia niemal automatycznie, bo (n2=1+3+5+...+2n−1) x2=(x–2)(x+2)+4=(x–2)(x+2)+1+3 (np. 42=(4–2)*(4+2)+4=6*2+4) x2=(x–3)(x+3)+9=(x–3)(x+3)+1+3+5 (np. 52=(4–2)*(4+2)+4=6*2+4) a2−1 a a −1 2 2 ...−1 ... ...−1 ...− ...−1− ...− −3 … 2 x −9 x 2− 4 −5 ...−1−3 x2−1 x2 x 2− 1 … −3 −1 • pozostałe przek tne s odległe od siebie kolejno o 2, o 4, o 6 itd. ź x (x–1) =(x+1)(x–2)+2, x (x–1) =(x+2)(x–3)+2+4, ... © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 (np. 5*4=6*3+2) (np. 5*4=7*2+2+4) DZ–VI Działania Tabliczki mno enia w systemach naturalnych 5 2 3 4 4 6 2 3 4 5 7 2 3 4 5 6 4 — — 11 14 — 13 22 31 2 4 10 12 14 — 13 20 23 — — 24 32 — — — 41 2 4 6 11 13 15 — 12 15 21 24 — — 22 26 33 — — — 34 42 — — — — 51 2 3 3 4 5 3 4 5 6 9 2 3 4 5 6 7 8 11 2 3 4 5 6 7 8 9 A 2 4 6 8 11 13 15 17 — 10 13 16 20 23 26 — — 17 22 26 31 35 — — — 27 33 38 44 — — — — 40 46 53 — — — — — 54 62 — — — — — — 71 2 4 6 8 A 11 13 15 17 19 — 9 11 14 17 1A 22 25 28 — — 15 19 22 26 2A 33 37 — — — 23 28 32 37 41 46 — — — — 33 39 44 4A 55 — — — — — 45 51 58 64 — — — — — — 59 66 73 — — — — — — — 74 82 — — — — — — — — 91 3 4 5 6 7 8 3 4 5 6 7 8 9 ź A © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 DZ–VII Działania Dzielenie całkowite X, D, Q, R – liczby całkowite 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 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 DZ–VIII Działania Dzielenie sekwencyjne W systemie pozycyjnym o danej podstawie β dzieln i dzielnik mo na łatwo skalowa przez pot gi podstawy, ergo –p iloraz mo na obliczy z dowoln dokładno ci β . Je li X = {xk −1 ,..., x1 , x0 ,..., x− m }β oraz D = {d l −1 ,..., d1 , d 0 ,..., d − s }β , to obliczony z dokładno ci β –p iloraz X/D jest równy: Q = {qk −l +1 , qk −l ,..., q0 ,...q− p }β = k −l +1 ∑q β i =− p i i –p przy tym reszta jest nie wi ksza ni D*β . ź Algorytm oblicze jest iteracyjny – na podstawie ju obliczonego przybli enia z dokładno ci β –s obliczamy przybli enie z dokładno ci β –(s+1) (kolejn cyfr ilorazu) © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 DZ–IX Działania 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, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 DZ–X Konwersja podstawy Pozycyjne rozwini cie liczby w systemie naturalnym Jednoznaczn reprezentacj liczby X ≥ 0 w systemie naturalnym o podstawie β jest rozwi zanie równania {xk −1 ,..., x0 , x−1 ,..., x− m }β = k −1 ∑ xi β i = X , gdzie i=−m xi ∈ {0,1,...,β − 1} Metoda tablicowa 1. Obliczamy wszystkie potrzebne dodatnie pot gi podstawy β n < X i tyle pot g ujemnych, aby zapewni wymagan dokładno reprezentacji problem: warto ci pot g ujemnych s przybli one, np. 0,110 = 0,(00011)2 2. Obliczamy cyfry metod „odejmij i porównaj”: Xn–1= X – qβ n > 0 ale X – ( q+1)β n < 0, to xn-1=q, Xn–2= Xn–1– pβ n–1, … ź Bezpo rednie obliczenie Znamy tabliczk mno enia w systemie ródłowym z zapisem warto ci w systemie docelowym (na przykład konwersja na system dziesi tny) © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–1 Konwersja podstawy Generowanie reprezentacji pozycyjnej Dla cz ci całkowitej XI oraz ułamkowej XF liczby X mamy odpowiednio k −1 X I = ∑ xi β i = x0 + β {x1 + β [ x2 + ...β ( xk − 2 + β xk −1 )]} i =0 XF = −1 i −1 −1 −1 −1 { [ ... ( x x x x x− m )...]} β = β + β + + β + β ∑i −1 −2 − m +1 i =− m Regularno wyra e prowadzi do algorytmów generowania reprezentacji: • uniwersalnych – niezale nych od systemu, • dynamicznych – niezale nych od warto ci liczby. Algorytmy musz uwzgl dnia specyfik arytmetyki systemu pozycyjnego • ujemn podstaw w systemach negabazowych • ujemne cyfry w systemach SD • ujemn wag /cyfry na najwy szej pozycji w systemach uzupełnieniowych ź Najprostsze s algorytmy dla reprezentacji naturalnych © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–2 Konwersja podstawy Konwersja cz ci całkowitej liczby A mod b – reszta z dzielenia A przez b A div b – iloraz całkowity A przez b X I = I 0 = x0 + β {x1 + β [ x2 + β ( x3 + ...β ( xk −2 + β xk −1 )...)]} x0 = I 0 mod β I 0 div β = I1 = x1 + β [ x2 + β ( x3 + β [ x4 + ...β ( xk − 2 + β xk −1 )...])] x1 = I1 mod β I1 div β = I 2 = x2 + β ( x3 + β [ x4 + β ( x5 + ...β ( xk −2 + β xk −1 )...)]) x2 = I 2 mod β … cyframi rozwini cia cz ci całkowitej XI liczby X w systemie o podstawie β s : x j = I j mod β , I j +1 = I j div β = int β −1I j , I 0 = X I ź Je li Ir = 0, to xr+1 = 0, Ir+1 = 0 itd. (kolejne cyfry lewostronnego rozwini cia s zerami) © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–3 Konwersja podstawy Algorytm konwersji 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 ; podstaw warto ci pocz tkowe ź ; iloraz całkowity ; reszta ; zwi ksz i ; powtarzaj dopóki iloraz ≠ 0 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–4 Konwersja podstawy Konwersja cz ci ułamkowej liczby int A – cz całkowita liczby A X F = F1 = β −1{x−1 + β −1[ x−2 + β −1 ( x−3 + ... + β −1 ( x−m+1 + β −1 x−m )...)]} x−1 = int β F1 βF1 − x−1 = F2 = β −1[ x−2 + β −1 ( x−3 + β −1[ x−4 + ... + β −1 ( x−m+1 + β −1 x−m )...])]} x−2 = int β F2 βF2 − x−2 = F3 = β −1 ( x−3 + β −1[ x−4 + β −1 ( x−5 + ... + β −1 ( x−m+1 + β −1 x−m )...)]) x−3 = int β F3 cyframi rozwini cia cz ci ułamkowej XF liczby X w systemie o podstawie β s x− j = int β F j , F j +1 = β F j − x− j < 1 , F1 = X F < 1 Je li Fr = 0, to x–(r+1) = 0, Fr+1 = 0 itd. (kolejne cyfry prawostronnego rozwini cia s zerami) ź Je li Fr = Fr–k to rozwini cie jest okresowe (okres ma k cyfr) © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–5 Konwersja podstawy Algorytm konwersji 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 taki sam ułamek jak wcze niej). Reprezentacja cz ci ułamkowej (A < 1) z dokładno ci 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 β–m ; podstaw warto ci pocz tkowe ź ; cz całkowita iloczynu ; cz ułamkowa iloczynu ; zwi ksz i ; powtarzaj dopóki mała dokładno © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–6 Konwersja podstawy Konwersja podstawy w systemach naturalnych • działania wykonywane s w systemie ródłowym (o podstawie ω) • je li podstawa systemu docelowego β jest wi ksza od podstawy systemu ródłowego, to nale y wykonywa mno enie lub dzielenie przez warto podstawy zakodowan w systemie ródłowym β = |{bp, …, b1, b0}ω | • wyniki {zs–1, zs–1, …, z–r}β – w systemie o podstawie β ( s ≤ k log β ω ) Konwersja ułamka okresowego Zamiana ułamka okresowego na ułamek wymierny 1 z β −c 1 z β −c = k x + c 0, x−1...x− k ( z − k −1...z − k − c ) β = k x + −c β 1− β β β −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 ź Ułamek sko czony w bazie danej ω mo e by okresowy w bazie docelowej β za wynikiem konwersji ułamka okresowego mo e by ułamek sko czony. © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–7 Konwersja podstawy Konwersja ułamka wymiernego w systemach naturalnych Uwaga Wynikiem konwersji ułamka wymiernego jest ułamek sko czony lub okresowy 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 [∀p ∈ P : NWD ( p, ω ) = p ⇒ NWD ( p, β ) = p ] ⇒ ∃r < ∞ : i = −1 i = −1 ∑ xi ω = ∑ zi β i i=−m i i =−r D o w ó d . Je li F jest ułamkiem sko czonym m-pozycyjnym w bazie ω, to F= −1 ∑ xiω i =−m i =ω −m m −1 ∑ xi − mω i = Aω − m , 0 ≤ A ≤ ω m − 1, A ∈ N . i =0 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 NWD(p,β) = 1. Ale wówczas byłoby Aβ r = Bω m & NWD ( p, β ) = 1 & NWD ( p, ω ) = p ⇒ NWD ( p m , A) = p m , ź wi c rozwini cie F byłoby niesko czone, chyba e A = k pm. © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–8 Konwersja podstawy Konwersja podstawy skojarzonej w systemach naturalnych – przykłady 2345671,3215... = 2 ⋅106 + 34 ⋅104 + 56 ⋅102 + 71 ⋅100 + 32 ⋅10−2 + 15 ⋅10− 4... = = 2 ⋅1003 + 34 ⋅100 2 + 56 ⋅1001 + 71 ⋅1000 + 32 ⋅100 −1 + 15 ⋅100−2... 11 100 111, 011 1012 = 112 ⋅ 26 + 1002 ⋅ 23 + 1112 ⋅ 20 + 0112 ⋅ 2−3 + 1012 ⋅ 2−6 = = 38 ⋅ 82 + 48 ⋅ 81 + 78 ⋅ 80 + 38 ⋅ 8−1 + 58 ⋅ 8− 2 = 347,358 2347,358 = 2 ⋅ 83 + 3 ⋅ 82 + 4 ⋅ 81 + 7 ⋅ 80 + 3 ⋅ 8−1 + 5 ⋅ 8−2 = = 0102 ⋅ 29 + 0112 ⋅ 26 + 1002 ⋅ 23 + 1112 ⋅ 20 + 0112 ⋅ 2−3 + 1012 ⋅ 2−6 = = 010 011 100 111, 011 1012 = 0100 1110 0111, 0111 01002 = = 01002 ⋅ 28 + 11102 ⋅ 24 + 01112 ⋅ 20 + 01112 ⋅ 2− 4 + 01002 ⋅ 2−8 = 4E7,7416 ź Przykład (...)10→(...)8→(...)2 (83=512, 82=64, 8–1=0,125, 8–2=0,16625) 1937,0312510 = 3 ⋅ 512 + 3 ⋅ 64 + 2 ⋅ 8 + 1 + 2 ⋅ 641 = 3 ⋅ 83 + 3 ⋅ 82 + 2 ⋅ 81 + 1⋅ 80 + 2 ⋅ 8− 2 = = 3321,028 = 011 011 010 001, 000 010 2 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–9 Konwersja podstawy Konwersja podstawy skojarzonej w systemach naturalnych X = ... + x5 β 5 + x4 β 4 + x3 β 2 + x2 β 2 + x1 β 1 + x0 β 0 + x−1 β −1 + x−2 β −2 ... = = ...( x5 β + x4 ) β 4 + ( x3 β + x2 ) β 2 + ( x1 β + x0 ) β 0 + ( x−1 β + x− 2 ) β − 2 + ... = = ...( x5 β 2 + x4 β + x3 ) β 3 + ( x2 β 2 + x1β + x0 ) β 0 + ( x−1 β 2 + x− 2 β + x−3 ) β −3 + ... a zatem: k −1 ∑ xi β i =− m i = t −1 ∑ ( x js+ s−1β j =− r s −1 + ... + x js +1β + x js )( β ) = s j t −1 ∑ z j (β s ) j j =− r czyli {xk −1 ,..., x1 , x0 ,..., x− m } β = {zt −1 ,..., z1 , z0 ,..., z− r } β s gdzie z j = x js + s −1β s −1 + ... + x js +1β + x js ∈ {0,1,..., β s − 1} – warto cyfry w (..)β ↑ s Zło enie konwersji – (..)β ↑ k →(..)β ↑ s (..)β ↑ k →(..)β ↑ s ⇔ (..)β ↑ k →(..)β || (..)β →(..)β ↑ s ź ω < β s ⇒ zamiast konwersji (..)ω →(..)β wygodniej realizowa (..)ω →(..)β ↑ s © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–10 Konwersja podstawy Konwersja 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) ź Fi Ii mod 118 ×3 Fi Ii mod 128 ×128 2358 0 3058 2358 0 3058 178 7 =x0 x-1 = 3 6628 218 4 =x0 x-1 = 3 3558 1 5 =x1 x-2 = 108 3648 1 8 =x1 x-2 = 4 1258 0 1 =x2 x-3 = 4 6108 0 1 =x2 x-3 = 1 3758 235,3058 =157,384...10 = 184,341...9 = 12211,101101...3. © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–11 Konwersja podstawy Konwersja ułamka wymiernego na system pozycyjny • konwersja licznika i mianownika na system docelowy i dzielenie • zgodnie z algorytmem: o mno enie przez podstaw systemu docelowego o odcinanie cz ci całkowitej uzyskanego iloczynu 548 → X10 618 x0 =0 0 x–1 =8 =108 + 608 618 47 8 =118 + 618 57 8 =78 + 618 x–2 =9 x–3 =7 ×128=1010 6708 = 618 7408 = 618 6068 = … 618 ź 0,110 = 0,00011001100110011…2 = 0,0(0011)2 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–12 Konwersja podstawy Konwersja ułamków okresowych w systemach naturalnych • zamiana na ułamek wymierny • u ycie rozwini cia niesko czonego – korekcja skróconego rozwini cia • automatyczna korekcja okresu podczas mno enia ułamek wymierny 0,5(37)10 = ×8 rozwini cie niesko czone 53210 → X8 99010 0,5(37)10→X8 ×8 0 29610 425610 = 99010 99010 38810 236810 = x–2 = 2 + 99010 99010 13410 310410 + = x–3 = 3 99010 99010 ×8 Fi 0 5 37 37 37 … x–1 = 4 2 98 98 96 2 98 98 98 0,(386)10→X7 ×7 x–1 = Fi 0 (386) 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) ź x–1 = 4 + tylko 0,(xy...z)β © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 KP–13 Konwersja podstawy Konwersja podstawy w systemach stałobazowych Ka da liczba w systemie stałobazowym ma rozwini cie pozycyjne, wi c mo e by te rozwini ta wg schematu Hornera WNIOSEK Algorytmy konwersji dla systemu naturalnego mo na stosowa tak e w dowolnym systemie stałobazowym. Problem: arytmetyka musi by odpowiednia do wła ciwo ci systemu Przykład: 157,38610→(..)SD-8. (D = { 4 , 3, 2, 1, 0, 1, 2, 3} mod 8 ×8 0 x-1 = 3 x-2 = 0 x-3 = 5 =x0 =x1 =x2 ź Ii Ii 157 19 5 → 20 3 34 03 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 Fi(!<500) 386 088 704 !! 632 ↑ ×8 x-1 = x-2 = x-3 = x-4 = 0 3 1 2 3 Fi 386 088 296 368 056 KP–14 Liczby ujemne Reprezentacja znak-moduł pseudonaturalna – +32,317, –214,554, ... X = {s} || {xk −1 ,..., x1 , x0 ,..., x− m }β X = (−1) s k −1 ∑ xi β i , i=− m xi ∈{0,1,...,β − 1}, s ∈ {0,1} • dwie reprezentacje zera : „+ 0” i „− 0” • na ograniczonej liczbie pozycji zakres liczb jest symetryczny • problem w dodawaniu i odejmowaniu o efektywne działanie zale y od znaków § komplikacja algorytmu i dłu szy czas wykonania ź § bardziej skomplikowany układ © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–1 Liczby ujemne System negabazowy (z baz ujemn ) wi = ( − β ) i , β ≥2 X = {xk −1 , xk − 2 ,..., x0 , x−1 ,..., x− m }− β = k −1 ∑ xi (− β ) i , 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 • skomplikowany algorytm i układ o aby unikn odejmowania przeniesienia xi ± yi ± ci = ±(− β )ci +1 + si wytwarzane s dwa przeniesienia: ci ,i +1 = ( β − 1)ci +1 oraz ci ,i + 2 = ci +1 ź ci ,i +1 = β ci +1 , co daje ci ,i +1 − βci ,i + 2 = ( β − 1)ci +1 − β ci +1 = −ci +1 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–2 Liczby ujemne 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 | = n −1 ∑ xi β i , 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. © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–3 Liczby ujemne Reprezentacja minimalna w dwójkowym systemie SD reprezentacja minimalna Z ={z k −1 ,.., z − m +1 , z − m } – zawieraj ca najwi cej zer [ ∀ (z j ∃ s ≤ k −1 s < j ≤ k −1 = 1) ∨ (z j ∀ s < j ≤ k −1 = 1 )] ∧ [ ( z i z i −1 = 0)] ∀ − m +1≤ i ≤ s −1 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, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–4 Liczby ujemne Dwójkowa reprezentacja uzupełnieniowa – intuicja …rozszerzenie ... ... 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 +28–1 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 0 0 0 0 ... 0 0 0 1 1 ... 1 1 1 1 1 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 0 0 0 0 ... 0 0 0 1 1 ... 1 1 1 1 1 0 0 0 0 ... 0 0 0 1 1 ... 1 1 1 1 1 0 0 0 0 ... 0 0 0 1 1 ... 1 1 1 1 1 0 0 0 0 ... 0 0 0 1 1 ... 1 1 1 1 1 0 0 0 0 ... 0 0 0 1 1 ... 1 1 1 1 1 1 1 0 0 ... 0 0 0 1 1 ... 1 1 1 0 0 0 0 1 1 ... 0 0 0 1 1 ... 0 0 0 1 1 0 0 1 1 ... 0 0 0 1 1 ... 0 0 0 1 1 0 0 1 1 ... 0 0 0 1 1 ... 0 0 0 1 1 0 0 1 1 ... 0 0 0 1 1 ... 0 0 0 1 1 0 0 1 1 ... 0 0 0 1 1 ... 0 0 0 1 1 0 0 1 1 ... 1 0 0 1 1 ... 1 0 0 1 1 1 0 1 0 ... 0 1 0 1 0 ... 0 1 0 1 0 +27+1 +27 +27–1 +27–2 ... +2 +1 0 –1 –2 ... –27+2 –27+1 –27 –27–1 –27–2 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 1 1 ... ... 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 –28 ź 0 0 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–5 Liczby ujemne Dziesi tna reprezentacja uzupełnieniowa – intuicja …rozszerzenie ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 0 0 ... 0 0 0 0 ... 0 0 0 9 9 ... 9 9 9 9 9 ... 9 0 0 ... 0 0 0 0 ... 0 0 0 9 9 ... 9 9 9 9 9 ... 9 0 0 ... 0 0 0 0 ... 0 0 0 9 9 ... 9 9 9 9 9 ... 9 0 0 ... 0 0 0 0 ... 0 0 0 9 9 ... 9 9 9 9 9 ... 9 5 4 ... 0 0 0 0 ... 0 0 0 9 9 ... 9 9 9 9 9 ... 5 0 9 ... 5 5 4 4 ... 0 0 0 9 9 ... 5 5 5 4 4 ... 0 0 9 ... 0 0 9 9 ... 0 0 0 9 9 ... 0 0 0 9 9 ... 0 ź 0 0 ... 0 0 0 0 ... 0 0 0 9 9 ... 9 9 9 9 9 ... 9 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 0 9 ... 0 0 9 9 ... 0 0 0 9 9 ... 0 0 0 9 9 ... 0 0 9 ... 0 0 9 9 ... 0 0 0 9 9 ... 0 0 0 9 9 ... 0 0 9 ... 0 0 9 9 ... 0 0 0 9 9 ... 0 0 0 9 9 ... 0 0 9 ... 0 0 9 9 ... 0 0 0 9 9 ... 0 0 0 9 9 ... 0 0 9 ... 9 0 9 0 ... 2 1 0 9 8 ... 2 1 0 9 8 ... 0 +5⋅107–1 ... +5⋅106+2 +5⋅106+1 +5⋅106–1 +5⋅106–2 ... +2 +1 0 –1 –2 ... –5⋅106+2 –5⋅106+1 –5⋅106 –5⋅106–1 –5⋅106–2 ... –5⋅107 INT–6 Liczby ujemne Reprezentacja uzupełnieniowa Jednolita formuła na obliczenie warto ci liczby | XUβ | = − ϕ ( xk −1 ) β + k k −1 ∑ xi β i , i =− m gdzie ϕ( xk −1) = 12 (1+ sgn (2 xk −1− β + 1)) – funkcja znaku liczby Rozszerzenie niesko czone (arytmetyczne) ? {xk −1 ,..., x1 , x0 ,..., x−m }Uβ = {..., xk , xk −1 ,..., x1 , x0 ,..., x−m ,.x−m−1 ,.., x− p }Uβ → intuicje 325,17U10 674,83U10 (+325,1710) 0..0325,17U10 (–325,1710) 9..9674,83U10 325,1U8 452,7U8 (+325,18) 0..0325,10U8 (–325,18) 7..7452,70U8 Je li wi c xe = ϕ ( xk −1 )( β − 1) , to (zauwa , e ϕ ( xe )( β − 1) = xe ) X e = {..., xe , xk −1 ,..., x−m+1 , x−m ,0,...} ź Uwaga: Zauwa my, e poprawne cyfry reprezentacji liczby przeciwnej otrzymamy przez odejmowanie danej od zera © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–7 Liczby ujemne Dwójkowa reprezentacja uzupełnieniowa U2 β = 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 + k −2 ∑ xi 2i i =− m Rozszerzenie niesko czone liczby w kodzie U2 Xe = {..., xk −1 , xk −1 , xk − 2 ,..., x− m +1 , x− m ,0,0,...}U2 . Alternatywna interpretacja ź X U 2 = |{xk −1 ,..., x1 , x0 ,..., x− m }U 2 | = © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 k −1 ∑ xi 2i , i =− m xk −1 ∈ {1 ,0}, xi ∈ {0,1} INT–8 Liczby ujemne Reprezentacja spolaryzowana (liczb całkowitych) przypisanie reprezentacji naturalnej warto ci pomniejszonej o N (obci enie) k −1 X =|{xk −1 ,..., x1 , x0 }+ N | = ∑ xi β i − N , 0 < N < β k i =0 xi ∈ {0,1,..., β − 1} reprezentacja z obci eniem N (biased N, excess N, XS-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) © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–9 Liczby ujemne 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, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–10 Liczby ujemne Dwójkowa reprezentacja spolaryzowana i uzupełnieniowa Gdy N = 2 k −1 jest k −1 X + N = ∑ xi 2 − 2 i k −1 i =0 = −(1 − xk −1 )2 k −1 k −2 + ∑ xi 2 i , 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 k −2 − 1) = ∑ 2 i , wi c otrzymamy i =0 k −1 X + N = ∑ xi 2 − ( 2 i =0 i k −1 − 1) = xk −1 2 k −1 k −2 k −2 k −1 + ∑ ( xi − 1)2 = − − xk −1 2 + ∑ (1 − xi )2 i i =0 i=0 i ź ⇒ − {xk −1 , xk − 2 ,..., x−m }U2 = {xk −1 , xk −2 ,..., x−m }+ 2↑( k −1)−1 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–11 Liczby ujemne Bezpo rednia konwersja liczby na system uzupełnieniowy Poniewa wagi / warto ci wszystkich cyfr reprezentacji uzupełnieniowych oprócz najwy szej s dodatnie, wi c: a) konwersja cz ci całkowitej wymaga nast puj cego post powania: 1) kolejne ilorazy maj taki znak jak liczba przetwarzana, 2) warunek stopu: iloraz równy warto ci cyfry rozszerzenia (0 lub –1) b) konwersja ułamka wła ciwego – zamiana na posta 0+f lub –1+f ź – konwersja dodatniej cz ci ułamkowej f – jak dla liczb dodatnich © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–12 Liczby ujemne Dopełnienie liczby i liczba przeciwna 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 = {~ xk −1 ,..., ~ x1 , ~ x0 ,..., ~ x− m }β ⇔ X + X = 0 Odwrotno ź addytywna jest relacj równowa no ci ~ ~ ~ Je li istnieje liczba Q , to X = 0 − X = Q + Q − X = Q + X i wtedy ~ X − Y = X + ( Y + Q) © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–13 Liczby ujemne Reprezentacje dziesi tne kodowane dwójkowo 1 6 1 0 • do binarnego zakodowania jednej z β cyfr potrzeba log2β bitów ⋅ ⋅ ⋅ ⋅ ⋅ = = mo liwo ci kodowania cyfr 0…9 • jest ⋅ ⋅ ⋅ ⋅ 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 – – – – – – – – Kod BCD+3 (Excess-3, XS-3) i jego dopełnienie (~1930) – – – 0 1 2 3 4 5 6 7 8 9 – 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 – – – ź • samodopełnianie – negacja bitów cyfry → dopełnienie warto ci cyfry © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 INT–14 Systemy komplementarne* Systemy komplementarne Dla liczb z ograniczonego zakresu 0 ≤ | X | ≤ | R | liczb przeciwn mo e reprezentowa jej uzupełnienie do stałej R ~ ~ X = R −X ⇔ X = −X ~ ~ ~ ~ Uzupełnianie jest odwracalne X = X , a poniewa R = 0 ⇒ | R |= 0 wi c tak e ~ ~ X = R−X = 0−X 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, u.niepełne (diminished r-c.) ~ ~ Q = R − Q = 0, 0 = R − 0 = Q o R = Q → dwie reprezentacje zera: 0 oraz Q © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–1 Systemy komplementarne* Reprezentacja liczby przeciwnej X = {xk −1 ,..., x1 , x0 ,..., x− m : xi = ( β − 1) − xi }β = Q − X – dopełnienie liczby X liczb przeciwn (odwrotno addytywn ) – je li istnieje – reprezentuje kod ~ 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 = ulp zawsze istnieje, ergo ź ⇒ ka de odejmowanie mo na zast pi dodawaniem ~ ~ X − Y = X + Y = X + Y + (R − Q) = X + Y + Q © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–2 Systemy komplementarne* Wła ciwo ci systemów komplementarnych 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) © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–3 Systemy komplementarne* 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ł xi ± yi ± ci = si ± βci +1 , (i) • 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, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–4 Systemy komplementarne* 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 β k R =β 1 β –1 β –1 β –1 β –1 … 0 0 β –1 β –1 … 0 0 … 0 0 β –1 β –1 … 0 0 XUβ = xk −1β XUβ ≥ 0 ⇒ XUβ = xk −1 β ź XUβ < 0 ⇒ ... ... … ... ... ... ... … ... ... © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 k −1 k −1 β –1 β –1 β –1 β –1 β –1 β –2 … 0 0 β –1 β –1 … 0 0 … 0 0 β –1 β –1 … 0 0 … 1 0 β –1 β –2 … 1 0 D1/U1 k –m 1 /2 β −β k –m 1 /2 β −2β … –m +β +0 −0 –m −β … k –m −1/2 β +2β k –m −1/2 β +β –m R =β k−β k −2 + ∑ xi β i , i =− m −R+ k −2 ∑ xi β i i=−m SK–5 Systemy komplementarne* Warto liczby w systemie komplementarnym | XUβ | = −ϕ ( xk −1 ) R + k −1 i β x ∑i , 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 ) β + k k −1 ∑ xi β i + δ ϕ( xk −1 )β −m 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 (zauwa , e ϕ ( xe )( β − 1) = xe ) X e = {..., xe , xk −1 ,..., x−m+1 , x−m ,0,...}, • system dopełnieniowy: X e = {..., xe , xk −1 ,..., x−m+1 , x−m , xe ,...} ź • system uzupełnieniowy: © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–6 Systemy komplementarne* 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 k −2 + ∑ xi 2 i 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 k −2 ∑ xi 2 i 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 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–7 Systemy komplementarne* Kod uzupełnieniowy do 2 (U2) i dopełnieniowy do „1” (niepełny, D1) U2 +2 −1 0 +2m−1−2 0 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 m−1 +2 +1 0 −1 −2 ź | X | = |{xk −1 ,..., x1 , x0 ,..., x− m }| = − xk −1R + © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 −2m−1+2 −2m−1+1 R =−2m−1+1 k −2 ∑ xi 2i i =−m SK–8 Systemy komplementarne* 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 +2 +1 0 −1 −2 −5∗10k−1+1 −5∗10k−1 R =−10k−1 (0) (0) … (0) (0) 0 (9) (9) … (9) (9) 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 … … … … … … … … … … … 9 9 … 0 0 0 9 9 … 0 0 9 9 … 0 0 0 9 9 … 0 0 ź | X | = |{xk −1 ,..., x1 , x0 ,..., x− m }| = −ϕ ( xk −1 ) R + © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 9 8 … 2 1 0 9 8 … 2 1 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 k −1 ∑ xi β i i =− m SK–9 Systemy komplementarne* Kod uzupełnieniowy do 8 (U8) i dopełnieniowy do „7” (niepełny, D7/U7) U9 +4∗8 −1 +4∗8k−1−2 k−1 +2 +1 0 −1 −2 −4∗8k−1+1 −4∗8k−1 R =−8k−1 (0) (0) … (0) (0) 0 (7) (7) … (7) (7) 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 ... ... … ... ... ... ... ... … ... ... 7 7 … 0 0 0 7 7 … 0 0 7 7 … 0 0 0 7 7 … 0 0 | X | = |{xk −1 ,..., x1 , x0 ,..., x− m }| = −ϕ ( xk −1 ) R + 7 6 … 2 1 0 7 6 … 2 1 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 k −1 ∑ xi β i i =− m ź R = β k – ε ⋅ ulp © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–10 Liczby i wielomiany* Liczby zespolone (1) Liczba zespolona – para liczb (a, b), której przypisano warto |(a, b)| = a + i b, i2=−1 zespolon 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] © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–1 Liczby i wielomiany* Liczby zespolone (2) Posta wykładnicza a b a + ib = a 2 + b 2 2 i + 2 2 2 a +b a +b wi c je li podstawimy z = a 2 + b 2 , x = arctan(b / a ) , to a + i b = z ( cos x + i sin x ) = z e i x eiπ+1=0 Wzór Laplace’a 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 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–2 Liczby i wielomiany* Wielomiany (1) W (n) ( x ) = an x + an −1 x n n −1 n + ... + a1 x + a0 x = ∑ ai x i 1 0 i =0 ALGORYTM DZIELENIA Ka dy wielomian mo na zapisa w postaci W ( n ) ( x) = P ( n − k ) ( x) Q ( k ) ( x) + R ( k −1) ( x) Q(k)(x) – dzielnik wielomianu (stopnia k) R(k–1)(x) – reszta z dzielenia (stopnia ni szego ni k) 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) – dzielnik nierozkładalny na czynniki liniowe. © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–3 Liczby i wielomiany* Wielomiany (2) ROZKŁAD WIELOMIANU NA CZYNNIKI WNIOSEK 3: Całkowite pierwiastki wielomianu o współczynnikach całkowitych s podzielnikami wyrazu wolnego a0 = an x1 x2 …xs . WNIOSEK 4: Mamy n x W (n) −1 ( x ) = an + an−1 x + ... + a1 x n −1 n + a0 x = ∑ ai x n−i n i =0 ź wi c pierwiastki wymierne wielomianu o współczynnikach całkowitych s podzielnikami wyrazu najwy szego an = a0 x1 x2 …xs . © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–4 Liczby i wielomiany* Wielomian i wielomian podstawy Wielomian (polynomial) W n = {an, an–1, … a1, a0}: ai – parametry, x – zmienna W n ( x) = a n x n + a n −1 x n −1 + ... + a1 x 1 + a 0 x 0 n W ( x) = ∑ ai x i n i =0 Wielomian podstawy (radix polynomial) – reprezentacja stałobazowa jednolita Z = {zn, zn–1, … z1, z0}: zi – zmienne, β – parametr Z ( β ) = zn β n + zn −1β n −1 + ... + z1β 1 + z0 β 0 n Z ( β ) = Z = ∑ zi β i i =0 ź reprezentacja standardowa (pozycyjna) – 0 ≤ zi ≤ β −1 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–5 Liczby i wielomiany* Algebra wielomianów i algebra liczb Algebra wielomianów n n W ( x) + W ( x) = ∑ (ai + bi ) x = ∑ si x i n a n b i i =0 i =0 si = ai + bi Algebra liczb – reprezentacja pozycyjna (stałobazowa standardowa) algorytm dodawania: n n Z ( β ) + Y ( β ) = ∑ ( zi + yi ) β = ∑ si β i 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 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–6 Liczby i wielomiany* Obliczenia – schemat Hornera Warto wielomianu mo na obliczy jako n W (n) ( x ) = ∑ ai x i = a0 + x {a1 + x [a2 + x (a3 + ... + x (an−1 + x an ))]} i =0 zło ono obliczeniowa • schemat klasyczny – suma iloczynów przez pot gi zmiennej o n dodawa , o n mno e , o n–1 oblicze pot g, o pami pot g ź • schemat Hornera – suma iloczynów przez zmienn o n dodawa o n mno e , o zb dna pami © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–7 Liczby i wielomiany* Szybkie obliczanie warto ci liczby – schemat Hornera liczby całkowite n Z β = {z n ,..., z1 , z 0 }β = ∑ zi β i = z 0 + z1 β + z 2 β 2 + ... + z n β n i =0 obliczanie rekurencyjne n Z β = ∑ zi β i = {[( βz n + z n −1 ) β + z n − 2 ]β + ... + z1}β + z 0 i =0 liczby ułamkowe Z β = {z −1 ,..., z − m +1 , z − m }β = obliczanie rekurencyjne – warto ∑ zi β i = z −1β −1 + z −2 β − 2 + ... + z −m β −m i =−m w postaci ułamka wymiernego −1 ∑ zi β i = β −m {[(βz −1 + z −2 )β + ... + z −m+1 ]β + z −m } i =−m ź Zβ = −1 © Janusz Biernat, 01-06-Systemy liczbowe.doc, 6 pa dziernika 2006 SK–8