E. Pohyblivá řádová čárka
Transkript
E. Pohyblivá řádová čárka • • • • • • • • • • • pevná a pohyblivá řádová čárka formát US Air Force MIL-STD-1750A základní operace normalizace přetečení a nenaplnění formát BFLM – 1 přímý kód – sčítání a odčítání – násobení, dělení a posuvy obvody pro posuv aditivní kód – sčítání a odčítání formát BFLM – 2 formát ANSI/IEEE Std 754-1985 JPO 2005/6 c A. Pluháček 12.4.2006 pevná a pohyblivá řádová čárka řádová mřížka (dosud uvažovaná) . . . pevná řádová čárka =⇒ omezený rozsah čísel změna rozsahu (ale nikoliv změna přesnosti!): • vhodné (konstantní) měřítko • proměnné měřítko (mění se podle potřeby) → pohyblivá řádová čárka (M, E) ∼ A = M ·z E M — mantisa . . . Jaké číslice? E — exponent nebo charakteristika . . . Kam umístit čárku? znaménko(A) = znaménko(M ) JPO 2005/6 E1 c A. Pluháček 12.4.2006 pohyblivá řádová čárka — příklad formátu Příklady 1 a 2: (US Air Force MIL-STD-1750A) 24 bitů 8 bitů D′ (M ) D′′ (E) dvojková čárka dvojková čárka D′ (M ) . . . doplňkový kód, modul Z = 2, t.j. 20+1 D′′ (E) . . . doplňkový kód, modul Z = 256, t.j. 27+1 1. A ∼ A8 00 00 0316 = 1010 1000 0 . . . 0 0000 00112 D′ (M ) = 1,010 12 ⇒ M = −0,10112 D′′ (E) = 112 ⇒ E = 112 = 310 A = −0,10112 ⊳ 310 = −101,12 = −5,5 10 2. A ∼ 58 00 00 FF16 = 0101 1000 0 . . . 0 1111 11112 D′ (M ) = 0,101 12 ⇒ M = 0,10112 ′′ D (E) =1111 11112 ⇒ E = −12 = −110 A = 0,10112 ⊲ 1 = 0,010112 = 0,343 750 10 JPO 2005/6 E2 c A. Pluháček 12.4.2006 základní operace i násobení a dělení: M1 · z E1 · M2 · z E2 = M1 · M2 · z E1 +E2 M 1 · z E1 = M 1 · z E1 −E2 M2 M 2 · z E2 základní princip (pouze!): (M1 , E1 ) · (M2 , E2 ) = (M1 · M2 , E1 +E2 ) (M1 , E1 ) / (M2 , E2 ) = (M1 /M2 , E1 −E2 ) sčítání: JPO 2005/6 M1 · z E1 + M2 · z E2 = ? E3 c A. Pluháček 12.4.2006 základní operace ii Příklad 3: (MIL-STD-1750A) A ∼ F5 00 00 0616 = 1111 0101 0 . . . 0 0000 01102 D′ (M ) = 1,111 01012 ⇒ M = −0,000 10112 D′′ (E) = 1102 ⇒ E = 1102 = 610 A = −0,000 10112 ⊳ 610 = −101,12 = −5,5 10 F5 00 00 0616 A8 00 00 0316 ∼ ∼ −5,5 10 −5,5 10 — viz př. 1 obecně : M ·z E = M z j · z E −j = M ⊳ j · z E −j , popř. M ·z E = M z −j · z E +j = M ⊲ j · z E +j jinak: (M, E) = (M ⊳ j, E −j), popř. (M, E) = (M ⊲ j, E +j) M ⊲ j −→ ? ztrátu přesnosti ? ? platnost vztahů ? M ⊳ j −→ ? přeplnění ? JPO 2005/6 E4 c A. Pluháček 12.4.2006 základní operace iii sčítání (2): • úprava na stejný exponent (M1 , E1 ) + (M2 , E2 ) = (M1′ , E) + (M2′ , E) = = (M1′ + M2′ , E), neboť M1′ ·z E +M2′ ·z E = (M1′ + M2′ )·z E • Pokud je to možné, provádět posuv mantisy příslušející většímu exponentu vlevo (a tento exponent snižovat). • Není-li to již možné, provádět posuv mantisy příslušející většímu exponentu vpravo (a tento exponent zvyšovat). zjednodušení algoritmu — vyloučit posuv mantis vlevo, tzn. připustit pouze normalizovaný tvar: • mantisa je posunuta co nejvíce vlevo, popř. • exponent je nejmenší možný JPO 2005/6 E5 c A. Pluháček 12.4.2006 základní operace iv Příklad 4: (MIL-STD-1750A) A8 00 00 0316 normalizovaný tvar čísla −5,5 10 (př. 1) F5 00 00 0616 nenormalizovaný tvar čísla −5,5 10 (př. 3) ◮ F5 00 00 0616 = 1111 0101 0 . . . 0 0000 01102 ◮ obraz mantisy v doplňkovém kódu = 1111 0101 . . . ◮ možný aritmetický posuv o 3 místa vlevo sčítání (3): srovnat na větší z exponentů: M1 ·z E1 + M2 · z E2 = (M1 · z E1 − E2 + M2 ) · z E2 = (M1 + M2 · z E2 − E1 ) · z E1 (M1 , E1 ) + (M2 , E2 ) = (M1 ⊲ (E2 −E1 ) + M2 , E2 ) = (M1 + M2 ⊲ (E1 −E2 ), E1 ) odčítání — analogicky: (M1 , E1 ) − (M2 , E2 ) = (M1 ⊲ (E2 −E1 ) − M2 , E2 ) = (M1 − M2 ⊲ (E1 −E2 ), E1 ) JPO 2005/6 E6 c A. Pluháček 12.4.2006 rozklad operandů a složení výsledku před „vlastníÿ operací je třeba operandy rozložit po operací je třeba výsledek složit Příklad 5: (MIL-STD-1750A) 50000004 ∼ 10 E1 = 4 M1 = 0,1012 40000001 ∼ 1 E2 = 1 M2 = 0,12 M2′ = M2 ⊲ 3 M1′ = 0,1012 M2′ = 0,00012 M = 0, 101 + 0, 0001 = 0, 10112 E1 > E2 E1 − E2 = 3 E = E1 E=4 0101 1000 . . . 0000 0000 0100 2 = 58 00 00 0416 ∼ JPO 2005/6 E7 11 c A. Pluháček 19.4.2006 (opraveno) úpravy řádové mřížky Příklad 6: (MIL-STD-1750A) 60000002 ∼ 3 40000002 ∼ 2 E1 = E2 = 2 M1 = 0,112 M2 = 0,12 E=2 0,11 + 0,1 = 1,01 = D′ (M ) ⇒ M < 0 ⇒ špatně! rozšířená řádová mřížka pro mantisu: 00,11 + 00,1 = 01,01 = D∗ (01, 012 ) mantisa: 01, 01 ⊲ 1 = 00, 101 — po zkrácení: 0,101 exponent (zvýšení o 1): 2 + 1 = 3 výsledek: 50 00 00 03 ∼ 5=3+2 • rozšíření řádové mřížky, posuv (nebo „neposuvÿ) a následné zkrácení lze provést mimo registry, tzn. v kombinačních obvodech (sčítačka, obvod pro posuv a multiplexor) • alternativní řešení: posuv operandů vpravo a příslušná úprava výsledku JPO 2005/6 E8 c A. Pluháček 12.4.2006 normalizace Příklad 7: (MIL-STD-1750A) 40000005 ∼ 16 8800004 ∼ −15 E1 = 5 E2 = 4 E1 > E2 ∗ ∗ D (M1 ) = 00,1000 D (M2 ) = 11,0001 E1 − E2 = 1 ∗ posuv D (M2 ) o 1 místo vpravo D∗ (M2 ) ← 11,10001 E = E1 = 5 00,100 0000... 0 11,100 0100... 0 0 0 , 0 0 0 0 1 0 0 . . . 0 −→ 04 00 00 05 ∼ 1 normalizovaný tvar: 40 00 00 01 ∼ 1 • Na konci každé operace je nutno výsledek převést na normalizovaný tvar — normalizace. • Pak lze výsledek použít jako operand. JPO 2005/6 E9 c A. Pluháček 12.4.2006 normalizovaný obraz nuly Příklad 8: 654321FB ∼ 0,065432116 E1 = −5 (MIL-STD-1750A) 0000000 ∼ 0 E2 = 0 E1 < E2 0,110 0101 0100 0011 0010 0001 ⊲ 5 = = 0,000 0011 0010 1010 0001 1001 0000 1 přičíst 0 a složit výsledek = 032A1900 ∼ 0,065430016 0,0654300 6= 0,0654321 + 0 E = E2 = 0 špatně! Nula nesmí mít větší exponent než jiné číslo! normalizovaný obraz nuly — nejmenší možný exponent Př. (MIL-STD-1750A): 0 ∼ 00 00 00 80 D′′ (E) = 8016 ⇒ E = −12810 mantisu lze posouvat, ale exponent nelze snižovat JPO 2005/6 E 10 c A. Pluháček 12.4.2006 přetečení a nenaplnění výsledek operace: (M, E) ∼ A = M ·z E požadováno: Emin ≤ E ≤ Emax např. −128 ≤ E ≤ 127 • E > Emax — přeplnění (nebo přetečení) angl. overflow • E < Emin — nenaplnění (nebo podtečení) angl. underflow E → −∞ ⇒ z E → 0 ⇒A→0 JPO 2005/6 E 11 c A. Pluháček 12.4.2006 jiný formát Příklad: formát označovaný dále BFLM P(M ) A(E) |M | dvojková čárka (pro M i pro E) mantisa: přímý kód — znaménko a absolutní hodnota exponent: aditivní kód (kód s posunutou nulou) pozn.: Formát BFLM je jakýsi „kříženecÿ formátu IBM-360 a dále diskutovaného formátu ANSI/IEEE Std 754-1985. JPO 2005/6 E 12 c A. Pluháček 12.4.2006 přímý kód Přímý kód: P(X) ± absolutní hodnota ↑ znaménkový bit: 0 ∼ + 1∼ − Př.: X +0,00 +0,01 +0,10 +0,11 −0,00 −0,01 −0,10 −0,11 JPO 2005/6 P(X) 000 ←kladná 001 nula 010 011 100 ←záporná 101 nula 110 111 E 13 e 6 eZ u e − 12 Z u 0 1 Z 2 e e- X 1 Z 2 c A. Pluháček 12.4.2006 sčítání a odčítání v přímém kódu A+B →A nebo A−B →A sčítání ""bb ne " b bzA = zB " bb"" ano ? aA + aB → aA zA aA zB aB ... ... ... ... odčítání ""bb ano - "zA = zBb b " bb"" ne ? aA − aB → aA ""bb ""bb 0 1 " b - " přenos b b " b přenos"" bb"" bb" 0 1 ? 0 − aA → aA znaménko A zA → zA |A| znaménko B |B| ? ? přeplnění JPO 2005/6 E 14 konec c A. Pluháček 12.4.2006 násobení, dělení a posuvy v přímém kódu znaménko: + + − − + − + − + − ⇒ − + 0 0 1 1 0 1 0 1 0 1 1 0 ⇒ XOR absolutní hodnota — nezáporné číslo násobení a dělení nezáporných čísel již bylo diskutováno aritmetický posuv: • znaménkový bit se nemění; • posouvá se část obsahující absolutní hodnotu; • vypadne-li nenulový bit při posuvu doleva, dochází k přeplnění; • vypadne-li nenulový bit při posuvu doprava, dochází k ztrátě přesnosti JPO 2005/6 E 15 c A. Pluháček 12.4.2006 obvody pro posuv obvod angl. nazývaný „barrel shifterÿ JPO 2005/6 E 16 c A. Pluháček 12.4.2006 aditivní kód A(X) Aditivní kód: 6 Z e A(X) = X + K • K = 21 Z • K = 21 Z − ε K −K ≤ X < Z − K u −K Zde budeme uvažovat K = 21 Z − 1, tzn. Př.: A(X) = X + 12 Z − 1 takže − 12 Z + 1 ≤ X ≤ 1 Z 2 první bit ⇒ znaménko JPO 2005/6 e E 17 X -3 -2 -1 0 1 2 3 4 u e- X 0 Z−K A(X) 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 c A. Pluháček 12.4.2006 sčítání a odčítání v aditivním kódu i A(A + B) = A(A) + A(B) − K A(A − B) = A(A) − A(B) + K A(A + B) = A(A) + A(B) − 12 Z + 1 A(A − B) = A(A) − A(B) + 12 Z − 1 − 12 Z ≡ + 21 Z (mod Z) − 21 Z ≡ + 21 Z (mod Z) 1 Z 2 ∼ 100. . . 00 negace bitu v nejvyšším řádu přeplnění: sčítání: stejná znaménka sčítanců a jiné znaménko výsledku odčítání: znaménka menšence a menšitele se liší a liší se znaménka menšence a výsledku (odvození analogické jako u doplňkového kódu) JPO 2005/6 E 18 c A. Pluháček 12.4.2006 sčítání a odčítání v aditivním kódu an bn pn qn sn 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 ii qn = s n qn qn qn qn qn qn 6= sn 6= sn 6= sn 6= sn 6= sn 6= sn qn = s n over = qn ⊕ sn JPO 2005/6 E 19 c A. Pluháček 12.4.2006 sčítání a odčítání v aditivním kódu JPO 2005/6 E 20 iii c A. Pluháček 12.4.2006 vlastnosti formátu BFLM P(M ) A(E) |M | dvojková čárka (pro M i pro E) • obraz nejmenšího možného exponentu = 0 ⇒ normalizovaný obraz nuly = nula (se znaménkem plus či mínus) • porovnání: A ≥ B ⇐⇒ A − B ≥ 0 obrazy čísel A a B lze odečíst jako čísla v přímém kódu a v pevné řádové čárce • normalizovaný tvar nenulového čísla má v nejvyšším řádu |M | vždy jedničku — tu lze ze zápisu vypustit ⇒ lze použít princip skryté jedničky JPO 2005/6 E 21 c A. Pluháček 12.4.2006 formát ANSI/IEEE Std 754-1985 i ANSI/IEEE Std 754-1985 — jednoduchý formát — 32b ± 8b E+127 ? 24 b |M | 6 dvojková čárka (pro M i pro E) 8b g s g=0af =0 g = 0 a f 6= 0 g ∈ h1, 254i g = 255 a f = 0 g = 255 a f 6= 0 JPO 2005/6 23 b f (−1)s (−1)s (−1)s (−1)s NaN E 22 ·0 · f · 2−126 · (1 + f ) · 2g−127 ·∞ c A. Pluháček 12.4.2006 ANSI/IEEE Std 754-1985 ii Příklad: −5,510 ∼ ? 5,510 = 101,12 = (1,011 ⊳ 10)2 f = 0,011 000 . . . 0002 g = (127 + 2)10 = 1000 00012 obraz čísla −5,510 : 1 1000 0001 011 000. . . 0002 = = 1100 0000 1011 0000 0000 0000 0000 00002 = = C0B0 000016 JPO 2005/6 E 23 c A. Pluháček 12.4.2006 ANSI/IEEE Std 754-1985 iii ANSI/IEEE Std 754-1985 — dvojitý formát — 64b g . . . 11b f . . . 52b g=0a g=0a g ∈ h1, g = 2047 g = 2047 JPO 2005/6 f =0 f 6= 0 2046i af =0 a f 6= 0 (−1)s (−1)s (−1)s (−1)s NaN E 24 ·0 · f · 2−1022 · (1 + f ) · 2g−1023 ·∞ c A. Pluháček 12.4.2006
Podobné dokumenty
Normalizace - montessori
Míru svobody a volnosti mu zpočátku určuje dospělý. Pomalu se uzdravuje a cesta k tomuto
uzdravení spočívá v tom, že si dítě zvykne na určitou námahu v prostředí, které je vhodné pro jeho
potřeby.
...
Úvod do číslicové techniky - Univerzita Tomáše Bati ve Zlíně
4. šestnáctková (hexadecimální) číselná soustava
• základem je číslo16
• soustava používá šestnáct znaků (číslic a písmen,
znaků):
0, 1,…,9, A, B, C, D, E, F
• jedna číslice hexadecimálního zápisu ...
Technická specifikace Premium SMS
5. Zaslání odpovědi SK až do výše 20 EUR (MT billing)
Po přijetí požadavku je nutné vygenerovat text odpovědní SMS pro zákazníka dle následujícího
schématu:
1/ odpověď musí mít nastavený content-ty...
uživatelská příru
Někdy není možné kvůli nedostatku místa nebo nepřístupnosti použít přijímací kleště pro identifikaci kabelu ve
svazku. Pro tuto identifikaci je také možné pohodlně použít stetoskopickou anténu.
Fir...