• Nie Znaleziono Wyników

Plan wyk ladu. Kodowanie informacji. Reprezentacja binarna. Reprezentacja liczb. Reprezentacja liczb. prof. dr hab. inż.

N/A
N/A
Protected

Academic year: 2022

Share "Plan wyk ladu. Kodowanie informacji. Reprezentacja binarna. Reprezentacja liczb. Reprezentacja liczb. prof. dr hab. inż."

Copied!
13
0
0

Pełen tekst

(1)

Kodowanie informacji

Reprezentacja liczb

prof. dr hab. in˙z. Joanna J´ozefowska

Pozna´n, rok akademicki 2010/2011

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu

1 Plan wyk ladu

2 Liczby naturalne Klasyfikacja Kod BCD

Dodawanie w systemie BCD

3 Liczby ca lkowite Kod ZM Kod U1 Kod U2

4 Liczby rzeczywiste

Podej´scie sta loprzecinkowe Podej´scie zmiennoprzecinkowe B ledy zaokr, agle´, n

5 Pytania

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Reprezentacja liczb

Sta loprzecinkowa bez znaku ze znakiem Zmiennoprzecinkowa

pojedynczej precyzji podw´ojnej precyzji rozszerzonej precyzji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Reprezentacja binarna

Liczby naturalne przechowywane sa dok ladnie tak, jak, zapisaliby´smy je w systemie dw´ojkowym.

Ka˙zdy bit stanowi pojedyncza cyfr, e w tym systemie.,

Zapis binarny prosty pozwala za pomoca n cyfr zapisa´, c liczby z zakresu: 0 ≤ L10≤ 2n–1.

1 bajt to 28kombinacji, czyli zakres 0-255, 2 bajty to 216 kombinacji, czyli zakres 0-65536, 4 bajty to ponad 4 miliardy kombinacji.

(2)

Kod BCD

Systemy inne ni˙z dziesietny nie s, a wygodne dla cz lowieka., Ile wynosi 1/3 z liczby 1111002?

Aby u latwi´c konwersje mi, edzy systemem dw´, ojkowym i dziesietnym wprowadzono system kodowania BCD (ang., Binary-Coded Decimal).

W tym systemie liczby dziesietne kodujemy za pomoc, a ci, agu, bit´ow przypisujac ka˙zdej cyfrze dziesi, etnej odpowiadaj, acy jej, ciag 4 bit´, ow.

Poniewa˙z mamy jedynie 10 mo˙zliwo´sci wiec wystarczy,

zapamieta´, c tylko tyle, aby m´oc sprawnie i szybko przechodzi´c z systemu dziesietnego do BCD i odwrotnie.,

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Cyfry systemy dziesi etnego kodzie BCD

,

Cyfra dziesietna, Posta´c BCD Cyfra dziesietna, Posta´c BCD

0 0000 8 1000

1 0001 9 1001

2 0010 - 1010

3 0011 - 1011

4 0100 - 1100

5 0101 - 1101

6 0110 - 1110

7 0111 - 1111

Znaki nadmiarowe!

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Przyk lad kodowania BCD

12010= 11110002

120 = 2 ∗ 60 + 0 60 = 2 ∗ 30 + 0 30 = 2 ∗ 15 + 0 15 = 2 ∗ 7 + 1 7 = 2 ∗ 3 + 1 3 = 2 ∗ 1 + 1 1 = 2 ∗ 0 + 0

12010= 0001 0010 0000 = 000100100000BCD

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

W lasno´sci kodu BCD

Pomimo, i˙z kod BCD do zapisu u˙zywa cyfr dw´ojkowych, to otrzymany ciag r´, o˙zni sie od odpowiadaj, acej liczby w systemie, dw´ojkowym.

Konwersja 10 ← BCD lub BCD ← 10 odbywa sie na, podobnych zasadach jak konwersja 2 ← 16 lub 16 ← 2:

grupujemy bity po 4.

Kod BCD wymaga wiecej pami, eci ni˙z tradycyjny zapis w, systemie dw´ojkowym.

Konwersja jest naturalna i odbywa sie prawie natychmiast., Kod BCD znajduje zastosowanie w urzadzeniach,

elektronicznych z wy´swietlaczem cyfrowym (np. w kalkulatorach, miernikach cyfrowych), w zastosowaniach finansowych informatyki (ujednoznacznia zapis cze´sci, u lamkowych kwot i u latwia dziesietne zaokr, aglanie).,

(3)

Dodawanie bez przeniesienia

14210= 000101000010BCD 31110= 001100010001BCD+

——————————–

45310= 010001010011BCD 0100 0101 0011

4 5 3

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Dodawanie z przeniesieniem

Je˙zeli w wyniku dodawania otrzymamy czw´orke, kt´, ora nie ma poprawnej interpretacji w kodzie BCD, to wykonujemy korekcje,, kt´ora polega na dodaniu do tej czw´orki bit´ow liczby

610= 0110BCD. Na przyk lad:

910= 1001BCD 610= 0110BCD+

———————- 1510= 1111BCD????

610= 0110BCD+

———————-

1510= 10101 = 0001 0101BCD

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Dodawanie z przeniesieniem

6010= 01100000BCD 5510= 01010101BCD+

——————————–

10110101

610 = 0110 + (korekcja)

———————————

11510= 000100010101BCD 0001 0001 0101

1 1 5

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Kodowanie liczb ca lkowitych

Jak kodowany jest znak liczby?

Istnieja trzy g l´, owne sposoby kodowania liczb ze znakiem:

kod ZNAK-MODU L, kod U1,

kod U2.

(4)

Kod Z-M

Kod znak-modu l wystepuje te˙z pod nazwami: ZM, Z-M, SM, (Signed Magnitude), S+M.

W kodzie ZM:

najstarszy bit liczby jest bitem znaku,

wszystkie bity liczby poza najstarszym maja takie samo, znaczenie jak w kodzie binarnym.

Je´sli przyjmiemy do zapisu liczb format ca lkowity n-bitowy, to liczby w kodzie znak-modu l maja nast, epuj, ac, a posta´, c:

cn−1 cn−2cn−3. . . c2c1c0

o )

znak modu l

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Kod Z-M

Warto´s´c n-bitowej, ca lkowitej liczby w kodzie ZM obliczamy wg wzoru:

LZM = (−1)bit znaku x modu l liczby Rozpisujac bity otrzymujemy:,

bn−1bn−2bn−3. . . b2b1b0= (−1)bn−1 + bn−22n−2+. . .+b121+b020 gdzie:

gdzie b - bit, cyfra dw´ojkowa 0 lub 1, n - liczba bit´ow w zapisie liczby,

bit znaku: 0 – liczba dodatnia, 1 – liczba ujemna.

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Zamiana liczb w systemie dziesi etnym na kod Z-M

,

1 Je´sli liczba jest dodatnia, to bit znaku ma warto´s´c 0. W przeciwnym razie bit znaku ma warto´s´c 1.

2 Obliczamy warto´s´c bezwzgledn, a liczby, czyli jej modu l.,

3 Wyznaczamy bity modu lu przeliczajac liczb, e dziesi, etn, a na, zapis dw´ojkowy.

4 Otrzymane bity modu lu uzupe lniamy w miare potrzeby bitami, o warto´sci 0, aby otrzyma´c ustalona w formacie liczb, e bit´, ow dla modu lu.

5 Do bit´ow modu lu dodajemy bit znaku i otrzymujemy zapis Z-M.

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Przyk lady

1 Zmieniamy liczbe dodatni, a 93:,

1 Zmieniamy na liczbe binarn, a: 93, 10= 10111012 2 Dodajemy bit znaku: 9310= 01011101ZM

2 Zmieniamy liczbe ujemna -93:,

1 Zmieniamy modu l liczby na liczbe binarn, a:,

| − 9310| = 9310= 10111012

2 Dodajemy bit znaku: 9310= 11011101ZM

(5)

W lasno´sci kodu Z-M

1 Zakres liczb reprezentowanych w n-bitowym kodzie Z-M:

−2n−1+ 1 ≤ LZM ≤ 2n−1− 1.

2 Kod Z-M jest koncepcyjnie prosty, lecz stwarza powa˙zne problemy przy wykonywaniu operacji arytmetycznych.

3 Niejednoznaczno´s´c!!! - warto´s´c 0 posiada dwa s lowa kodowe:

0000 oraz 1000.

4 Bit znakowy posiada zupelnie inne znaczenie od pozostalych bit´ow i nie uczestniczy bezpo´srednio w operacjach

arytmetycznych.

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

System uzupe lnie´ n do 1 - U1

U1 (ang. 1C - One’s Complement) - wszystkie bity zapisu liczby posiadaja swoje wagi.,

Najstarszy bit jest bitem znaku i ma wage r´, owna (−2, n−1+ 1), gdzie n oznacza liczbe bit´, ow w zapisie liczby.

Pozosta le bity posiadaja wagi takie jak w systemie binarnym., Waga (−2n−1+ 1) (2n−2) (2n−3) . . . 22 21 20 Cyfra bn−1 bn−2 bn−3 . . . b2 b1 b0

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Warto´s´ c liczby w systemie U1

Warto´s´c liczby U1 obliczamy tak jak w systemie pozycyjnym - cyfry mno˙zymy przez wagi pozycji, na kt´orych sie znajduj, a i, dodajemy otrzymane iloczyny:

(bn−1bn−2bn−3. . . b2b1b0)U1=

bn−1(−2n−1+ 1) + bn−22n−2+ bn−32n−3+ . . . + b222+ b121+ b020 gdzie:

b - bit, cyfra dw´ojkowa 0 lub 1, n - liczba bit´ow w zapisie liczby,

Najstarszy bit jest bitem znaku: 0 – liczba dodatnia, 1 – liczba ujemna.

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

W lasno´sci systemu U1

Warto´s´c 0 posiada dwa s lowa kodowe: 0000 oraz 1111.

Liczba przeciwna zawsze powstaje w kodzie U1 przez negacje, wszystkich bit´ow. Zasada ta obowiazuje dla kod´, ow U1 o dowolnej d lugo´sci.

W systemie U1 wykonywanie operacji arytmetycznych wcia˙z, wymaga dodatkowych za lo˙ze´n.

Przy dodawaniu do wyniku nale˙zy doda´c przeniesienie poza bit znaku, aby otrzyma´c poprawny wynik.

110= 0001U1 (−1)10= 1110U1 510= 0101U1 (−5)10= 1010U1 710= 0111U1 (−7)10= 1000U1

(6)

Przeliczanie liczb dodatnich na zapis U1

1 Je´sli liczba jest dodatnia, znajdujemy jej reprezentacje w, naturalnym kodzie binarnym i uzupe lniamy bitami o warto´sci 0 do uzyskania zadanej liczby bit´ow wymaganej przez przyjety, format zapisu U1.

Przyk lad: Wyznaczy´c 8-mio bitowy zapis U1 liczby dziesietnej 76., 7610= 10011002

7610= 01001100U1

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Przeliczanie liczb ujemnych na zapis U1 - Wariant 1

1 Je´sli liczba jest ujemna, obliczamy jej modu l.

2 Modu l przedstawiamy w naturalnym systemie dw´ojkowym uzupe lniajac go bitami o warto´sci 0 do d lugo´sci przyj, etego, formatu U1.

3 Nastepnie wszystkie bity zamieniamy na przeciwne i w wyniku, otrzymujemy zapis U1.

Przyk lad: Wyznaczy´c 8-mio bitowy zapis U1 liczby dziesietnej -113.,

| − 113| = 113 11310= 011100012

−11310= NOT 01110001 = 10001110U1

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Przeliczanie liczb ujemnych na zapis U1 - Wariant 2

1 Wyznaczamy warto´s´c 2n− 1 + liczba, gdzie n oznacza liczbe, bit´ow w przyjetym formacie U1.,

2 Warto´s´c te kodujemy w naturalnym systemie dw´, ojkowym i otrzymujemy kod U1 liczby wyj´sciowej.

Przyk lad: Wyznaczy´c 8-mio bitowy zapis U1 liczby dziesietnej -113., 28− 1 − 113 = 256 − 1 − 113 = 142

14210= 100011102

−11310= 10001110U1

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

System uzupe lnie´ n do 2 - U2

Zmieniamy wage bitu znakowego z −2, n−1+ 1 na −2n−1, gdzie n oznacza liczbe bit´, ow w formacie kodu.

Wagi staja si, e teraz jednorodne - bit znakowy posiada wag, e, ujemna, lecz o warto´sci bezwzgl, ednej takiej samej jak w, systemie binarnym.

Nowy kod nosi nazwe uzupe lnie´, n do podstawy 2 lub w skr´ocie U2 (ang. 2C - Two’s Complement).

Waga (−2n−1) (2n−2) (2n−3) . . . 22 21 20 Cyfra bn−1 bn−2 bn−3 . . . b2 b1 b0

(7)

Warto´s´ c liczby w systemie U2

Warto´s´c liczby U2 obliczamy tak jak w systemie pozycyjnym - cyfry mno˙zymy przez wagi pozycji, na kt´orych sie znajduj, a i, dodajemy otrzymane iloczyny:

(bn−1bn−2bn−3. . . b2b1b0)U1=

bn−1(−2n−1) + bn−22n−2+ bn−32n−3+ . . . + b222+ b121+ b020 gdzie:

b - bit, cyfra dw´ojkowa 0 lub 1, n - liczba bit´ow w zapisie liczby.

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Warto´s´ c liczby w systemie U2

Je´sli bit znaku jest r´owny 0, to liczba jest dodatnia i reszte zapisu, mo˙zemy potraktowa´c jak liczbe w systemie dw´, ojkowym.

Przyk lad

01101011U2= 64 + 32 + 8 + 2 + 1 = 10710

Je´sli bit znaku ustawiony jest na 1, to liczba ma warto´s´c ujemna. Bit, znaku ma wage (−2, n−1), gdzie n oznacza liczbe bit´, ow w wybranym formacie U2. Reszta bit´ow jest zwyk la liczb, a w naturalnym kodzie, dw´ojkowym. Wage bitu znakowego i warto´s´, c pozosta lych bit´ow sumujemy otrzymujac warto´s´, c liczby U2.

Przyk lad

11101011U2= (−27) + 64 + 32 + 8 + 2 + 1 = −128 + 107 = (−21)10

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Liczba przeciwna w kodzie U2

1 Przej´s´c do pierwszego od prawej strony bitu zapisu liczby.

2 Do wyniku przepisa´c kolejne bity 0, a˙z do napotkania bitu o warto´sci 1, kt´ory r´ownie˙z przepisa´c.

3 Wszystkie pozostale bity przepisa´c zmieniajac ich warto´s´, c na przeciwna.,

Przyk lad. Znale´z´c liczbe przeciwn, a do liczby:, 1100100010111010111010010100001000000U2 0011011101000101000101101011111000000

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Przeliczanie dodatnich liczb dziesi etnych na zapis U2

,

1 Znale´z´c reprezentacje dw´, ojkowa danej warto´sci liczbowej.,

2 Uzupe lni´c ja bitami 0 do d lugo´sci formatu kodu U2., Przyk lad. Wyznaczy´c 8-mio bitowy kod U2 dla liczby 2710. 2710= 16 + 8 + 2 + 1 = 110112= 00011011U2.

(8)

Przeliczanie ujemnych liczb dziesi etnych na zapis U2

,

1 Je´sli do liczby 2n (n - liczba bit´ow w formacie U2) dodamy przetwarzana liczb, e dziesi, etn, a, to w wyniku otrzymamy, warto´s´c kodu dw´ojkowego r´ownowa˙znego bitowo (tzn. o takiej samej postaci) kodowi U2 przetwarzanej liczby.

2 Wynik dodawania zapisujemy w postaci kodu binarnego.

Przyk lad. Wyznaczy´c 8-mio bitowy kod U2 dla liczby −4510. 28+ (−45) = 256 − 45 = 211 = 110100112.

(−45)10= 11010011U2

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Reprezentacja liczb ze znakiem – por´ ownanie kod´ ow

Kod NKB Z-M U1 U2

0000 0 0 0 0

0001 1 1 1 1

0010 2 2 2 2

0011 3 3 3 3

0100 4 4 4 4

0101 5 5 5 5

0110 6 6 6 6

0111 7 7 7 7

1000 8 0 -7 -8

1001 9 -1 -6 -7

1010 10 -2 -5 -6

1011 11 -3 -4 -5

1100 12 -4 -3 -4

1101 13 -5 -2 -3

1110 14 -6 -1 -2

1111 15 -7 0 -1

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Kodowanie sta loprzecinkowe

Zapis pozycyjny mo˙zna w prosty spos´ob rozszerzy´c na liczby u lamkowe wprowadzajac pozycje o wagach u lamkowych., Zak ladamy, ˙ze przecinek jest za prawym skrajnym (najm lodszym bitem).

Wagi pozycji 103 102 101 100 10−1 10−2 10−3 10−4 10−5

Cyfry zapisu 3 5 7 9 , 8 2 9 1 4

Numery pozycji 3 2 1 0 -1 -2 -3 -4 -5

Cz,c Cz,c

ca lkowita u lamkowa

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

System pozycyjno-wagowy

Liczbe sta loprzecinkow, a L w systemie pozycyjnym o podstawie, (bazie) p zapisujemy w postaci: (an−1. . . a1a0a−1. . . a−m)p. Unikalna reprezentacj, a liczby o warto´sci L jest ci, ag cyfr, {an−1, . . . , a1, a0, a−1, . . . , a−m} takich, ˙ze: p - podstawa systemu, a – kolejne cyfry w liczbie, i – indeks kolejnych cyfr.

Przyk lad: Obliczy´c warto´s´c liczby sta loprzecinkowej 213, 1324. 213, 1324

= 2x 42+ 1x 41+ 3x 40+ 1x 4−1+ 3x 4−2+ 2x 4−3

= 2x 16 + 1x 4 + 3x 1 + 1x 1/4 + 3x 1/16 + 2x 1/64

= 32 + 4 + 3 + 1/4 + 3/16 + 2/64

= 39 + 16/64 + 12/64 + 2/64

= 393064

(9)

Uproszczenie

Cze´s´, c u lamkowa potraktujemy jako liczb, e ca lkowit, a, obliczymy jej, warto´s´c i pomno˙zymy ja przez wag, e ostatniej cyfry zapisu,

sta loprzecinkowego.

Przyk lad: Obliczy´c warto´c liczby sta loprzecinkowej 0, 42315.

42315= 4x 53+2x 52+3x 51+1x 50= 4x 125+2x 25+3x 5+1x 1 = 500+50+15+1 = 566 5−4=6251

0, 42315= 566x6251 =566625 Sprawdzenie:

0, 42315= 0x 50+ 4x 5−1+ 2x 5−2+ 3x 5−3+ 1x 5−4

= 0x 1 + 4x15+ 2x251 + 3x1251 + 1x6251

= 0 +45+252 +1253 +6251

=500625+62550 +62515 +6251

=566625

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Algorytm Hornera obliczania warto´sci liczby sta loprzecinkowej

Oznaczenia:

n - liczba cyfr w cz,sci ca lkowitej, m - liczba cyfr w cz,sci u lamkowej,

p - podstawa systemu pozycyjnego, w kt´orym jest zapisana liczba,

ci - cyfra stojaca na i-tej pozycji; pozycja o numerze 0 jest pierwsz, a pozycj, a od strony, prawej

w - obliczana warto´c liczby.

1 w ← 0

2 i ← n − 1

3 w ← ci + w x p

4 je´sli i = −m, to w ← w x p−m i koniec.

5 i ← i − 1

6 wr´o´c do punktu 3

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Algorytm Hornera - przyk lad

1 w ← 0

2 i ← n − 1

3 w ← ci+ w x p

4 je´sli i = −m, to w ← w x p−mi koniec.

5 i ← i − 1

6 wr´c do punktu 3

i ← 3 − 1 i ← 2 − 1 i ← 1 − 1 i ← 0 − 1 i ← −1 − 1 i ← −2 − 1

Obliczy´c za pomoca algorytmu Hornera warto´, c dziesietn, a liczby 237,745 (p=8)., w ← 0

w ← 2 + 0x 8 = 2 w ← 3 + 2x 8 = 19 w ← 7 + 19x 8 = 159

w ← 7 + 159x 8 = 1279 (od tego momentu wystepuja cyfry cz, ,sci u lamkowej) w ← 4 + 1279x 8 = 10236

w ← 5 + 10236x 8 = 81893 (ostatnia cyfra, koniec) w ← 81893x 8−3= 159485512= 159, 947265625

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Znajdowanie rozwini ecia liczby sta loprzecinkowej o

,

podstawie p – przyk lad

Znale´c rozwiniecie liczby 12, 89 na system tr´ojkowy z dok ladno´scia do dw´, och miejsc po przecinku.

1289x 32= 1289x 9 = 116 (mno˙zymy przez podstawe podniesion, a do odpowiedniej, potegi),

116/3 = 38 i reszta 2 38/3 = 12 i reszta 2 12/3 = 4 i reszta 0 4/3 = 1 i reszta 1 1/3 = 0 i reszta 1 (koniec)

Otrzymali´smy kolejne cyfry 11022. Dwie ostatnie cyfry umieszczamy po przecinku.

Ostatecznie: 1289= 110, 223

(10)

Wady notacji sta loprzecinkowej

Nie mo˙zemy prosto zapisywa´c na niewielkiej liczbie bajt´ow bardzo du˙zych i bardzo ma lych liczb.

Je´sli chcemy rozszerzy´c zakres i liczbe miejsc po przecinku, musimy u˙zywa´c bardzo du˙zej liczby bajt´ow.

Trudny do oszacowania b lad oblicze´, n.

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Kodowanie zmiennoprzecinkowe

Zapis bardzo du˙zych lub bardzo ma lych liczb w normalnej notacji pozycyjnej jest niewygodny poniewa˙z wymaga du˙zej liczby cyfr, np.

dwana´scie bilion´ow: 12 000 000 000 000

trzydzie´sci trylion´ow: 30 000 000 000 000 000 000 jedna bilionowa: 0,000 000 000 001

Znacznie prostsze jest przedstawienie powy˙zszych liczb w postaci zmiennoprzecinkowej (ang. floating point numbers)

dwana´scie bilion´ow: 12000000000000 = 1, 2x 1013

trzydzie´sci trylion´ow: 30000000000000000000 = 3, 0x 1019 jedna bilionowa: 0, 000000000001 = 1, 0x 10−12

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Zapis zmiennoprzecinkowy

Liczba zapisana w systemie zmiennoprzecinkowym sk lada sie z, dw´och cze´sci:,

liczby sta loprzecinkowej, kt´orej warto´s´c bezwzgledna jest, mniejsza od warto´sci podstawy systemu pozycyjnego (dok ladno´s´c),

podstawy podniesionej do pewnej potegi zwanej wyk ladnikiem, lub cecha (zakres).,

L = s x m x pc

s – znak liczby (1 lub -1), m – mantysa (liczba u lamkowa), p – podstawa systemu,

c – wyk ladnik potegowy, czyli cecha (liczba ca lkowita).,

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Zapis zmiennoprzecinkowy

Po lo˙zenie przecinka w mantysie nie jest ustalone i mo˙ze sie, dowolnie zmienia´c.

Nastepuj, ace zapisy oznaczaj, a t, e sam, a liczb, e:,

325x 1020= 32, 5x 1021= 3, 25x 1022= 0, 0325x 1024, itd.

Zmiana po lo˙zenia przecinka w mantysie wp lywa na warto´s´c cechy liczby.

Przesuniecie przecinka o 1 pozycj, e w lewo wymaga zwi, ekszenia, cechy o 1.

Przesuniecie przecinka o 1 pozycj, e w prawo wymaga, zmniejszenia cechy o 1.

Przyk lad dla systemu dziesietnego:, 32.246 = 0.32246 × 102

0.000183 = 0.183 × 10−3

−84239253.5 = −0.842392535 × 108

(11)

Znormalizowana liczba zmiennoprzecinkowa

Poniewa˙z liczbe zmiennoprzecinkow, a mo˙zna zapisywa´, c na r´o˙zne sposoby, przyjeto tzw. posta´, c znormalizowana.,

Definicja

Znormalizowana liczba zmiennoprzecinkowa to taka, w kt´orej mantysa spe lnia nier´owno´s´c:

p > |m| ≥ 1

Wed lug tej definicji postacia znormalizowan, a dla zapis´, ow:

325x 1020= 32, 5x 1021= 3, 25x 1022= 0, 0325x 1024 jest jedynie zapis 3, 25x 1022.

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Zapis zmiennoprzecinkowy

Zapisujemy mantyse przy wyk ladniku r´, ownym zero.

Normalizujemy mantyse modyfikuj, ac wyk ladnik liczby.,

Dodatkowo mo˙ze nastapi´, c obciecie albo zaokr, aglenie mantysy, do zadanej liczby cyfr.

Przyk lad (1523, 169)10

(1523, 169 × 100)10

(1, 523169 × 103)10

Zaokraglenie: (1, 5232 × 10, 3)10

Obciecie: (1, 5231 × 10, 3)10

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Zmiennoprzecinkowe liczby binarne

Liczby sa kodowane w jednym s lowie maszyny podzielonym na trzy, cze´sci:,

znak liczby (zwykle 1 bit),

jedna cze´s´, c (zwykle znacznie d lu˙zsza) zawiera kod mantysy liczby i jej znak

druga cze´s´, c (kilkubitowa) - kod cechy liczby i jej znak.

L = (−1)sx m × 2c

s – bit znaku (0 oznacza znak +, 1 znak - )

m – znormalizowana liczba zapisana jako binarna liczba naturalna

c – wyk ladnik potegi, czyli informacja o ile miejsc przesuwamy przecinek; mo˙ze by´, c dodatnia lub ujemna; jest zapisana w kodzie uzupe lnie´n do 2.

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Zmiennoprzecinkowe liczby binarne

W praktycznych realizacjach zapisu zmiennoprzecinkowych przyjmuje sie ograniczony zakres na mantys, e i cech, e,, Reprezentacja jest znormalizowana, tzn. bity mantysy sa, przesuniete tak, aby pierwsze miejsce po przecinku zajmowa l, pierwszy znak 1 ciagu mantysy. (0.5), 10= |mantysa| < 1 Z powy˙zszego powodu liczba w zapisie zmiennoprzecinkowym jest okre´slona z pewna dok ladno´sci, a i mo˙ze wyst, epowa´, c tylko w okre´slonym zakresie.

(12)

B l ad zaokr

,

aglenia

,

B lad zaokr, aglenia,

Wystapi wtedy, gdy cz, e´s´, c warto´sci liczby zostaje utracona w wyniku braku wystarczajacej d lugo´sci mantysy.,

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Format IEEE 754

Aby ujednolici´c wyniki oblicze´n numerycznych wykonywanych na r´o˙znych platformach sprzetowych, wprowadzono ´sci´sle, okre´slony standard zapisu zmiennoprzecinkowego IEEE 754.

Pe lna nazwa standardu to: IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEE Std 754-1985).

Obecnie praktycznie wszystkie implementacje sprzetowe liczb, zmiennoprzecinkowych oparte sa na tym standardzie.,

Standard IEEE 754 definiuje dwie podstawowe klasy liczb zmiennoprzecinkowych:

32 bitowe - pojedynczej precyzji (ang. single-precision), 64 bitowe - podw´ojnej precyzji (ang. double-precision).

Format Bit znaku Bity cechy Bity mantysy

32 bity - pojedyncza precyzja 1 bit 8 bit´ow 23 bity 64 bity - podw´ojna precyzja 1 bit 11 bit´ow 52 bity

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Format IEEE 754

W standardzie IEEE 754 zdefiniowane zosta ly tak˙ze inne klasy liczb zmiennoprzecinkowych:

pojedynczej rozszerzonej precyzji (ang. single-extended precision) – liczby ≥ 43-bitowe, nie sa powszechnie stosowane,, podw´ojnej rozszerzonej precyzji (ang. double-extended

precision) – liczby ≥ 79-bitowe, zazwyczaj implementowane jako 80-bitowe.

Standard IEEE 754 definiuje tak˙ze trzy formaty dw´ojkowe sta loprzecinkowe i jeden sta loprzecinkowy format dziesietny, BCD:

16-bitowy format ca lkowity (ang. short integer), 32-bitowy format ca lkowity (ang. integer),

64-bitowy format ca lkowity (ang. extended integer), 80-bitowy format dziesietny BCD (kodowanie 18-cyfrowej, liczby ca lkowitej dziesietnej oraz znaku na najbardziej, znaczacej pozycji),,

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Format IEEE 754

Standard IEEE 754 definiuje nie tylko spos´ob reprezentacji liczb, ale tak˙ze:

spos´ob reprezentacji specjalnych warto´sci, np.

niesko´nczono´sci, zera,

spos´ob wykonywania dzia la´n na liczbach zmiennoprzecinkowych,

spos´ob zaokraglania liczb,,

Norma IEEE 754 jest standardem dw´ojkowym, kt´orym wymaga sie, aby baz, a wszystkich reprezentacji by lo 2.,

(13)

Format IEEE 854

Istnieje tak˙ze norma IEEE 854 bed, aca standardem uniwersalnym,, niezale˙znym od bazy:

obejmuje arytmetyke dw´, ojkowa i dziesi, etn, a,, spos´ob wykonywania dzia la´n na liczbach zmiennoprzecinkowych,

nie precyzuje dok ladnie przyporzadkowania poszczeg´, olnych bit´ow ani sposobu kodowania liczb zmiennoprzecinkowych.

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Przyk lad

Zapisa´c liczbe 1984,0415 w kodzie zmiennoprzecinkowym pojedynczej precyzji, Przeliczamy liczbe 1984,0415:,

1984 = 11111000000 0, 0415 = 0.00001010101

1984.0415 = 11111000000.00001010101 Normalizacja 1.111100000000001010101

Uzupe lniamy 11111000000 do 23 bit´ow: 11110000000000000000000 Cecha: przecinek przesuneli´, smy o 10 miejsc w lewo, wiec jako cech, e trzeba, bedzie zapisa´, c liczbe 10 w kodzie U2: c = (01010), U2

Ostatecznie:

1984, 0415 = 0 01010 1111000000

prof. dr hab. in˙z. Joanna J´ozefowska Kodowanie informacji

Plan wyk ladu Liczby naturalne Liczby ca lkowite Liczby rzeczywiste Pytania

Pytania

Zapisa´c liczbe w kodzie BCD.,

Wykona´c dodawanie na liczbach w kodzie BCD.

Zapisa´c liczbe dziesi, etn, a w (o´, smiobitowym) kodzie Z-M.

Odczyta´c warto´c dziesietn, a liczby zapisanej w kodzie Z-M, Wyznaczy´c 16 bitowy zapis U1 liczby dziesietnej -4521.,

Wyznaczy´c liczbe przeciwn, a w kodzie U2 do liczby 01101110, U2. (Aby sie, przekona´c czy wyliczona zosta la poprawna warto´c nale˙zy wyliczy´c warto´sci dziesietne obu liczb.),

Obliczy´c warto´c liczby sta loprzecinkowej 537, 4628.

Znale´c rozwiniecie liczby 1/10 na system dw´, ojkowy z dok ladno´scia do 8 miejsc, po przecinku.

Obliczy´c warto´c zmiennoprzecinkowej liczby tr´ojkowej 2, 21x 1021. Zapisa´c liczbe 984,415 w kodzie zmiennoprzecinkowym pojedynczej precyzji,

Cytaty

Powiązane dokumenty

Milion rekordów bibliograficznych w KKZBUJ – spotkanie katalogerów UJ Kraków, 22.05.2013

• 25 luty 1991 r., wojna w zatoce perskiej, awaria systemu antyrakietowego Patriot (zegar rakiety tykał co 0.1 s.), zginęło 28 amerykańskich żołnierzy a 100 zostało

.* precyzja liczby zmiennopozycyjnej nie jest podawana w formacie lecz poprzez argument funkcji printf. W przypadku łańcuchów znakowych oznacza maksymalną liczbę wypisanych

W og´olnym przypadku mo˙ze nie by´c jednak latwe okre´slenie takiej warto´sci, a jej niedoszacowanie grozi oczywi´scie pora˙zk a ֒ algorytmu i nieznalezieniem rozwi azania,

W og´olnym przypadku mo˙ze nie by´c jednak latwe okre´slenie takiej warto´sci, a jej niedoszacowanie grozi oczywi´scie pora˙zk a ֒ algorytmu i nieznalezieniem rozwi azania,

[r]

• Największa liczba, jaką może przechować bajt powstaje przez nadanie wszystkim bitom wartości 1, liczbą tą jest 11111111... Obliczamy resztę z dzielenia otrzymanego ilorazu

Zasadniczo chodzi tylko o dodawanie, bo pozostałe działania sprowadzają się do dodawania (odejmowanie to dodawanie liczb różnych znaków np.. W przypadku liczb rzeczywistych