ć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

Podobne dokumenty