Zobrazení čísel v počítači
Transkript
Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Počítačové systémy Zobrazení čísel v počítači Miroslav Flídr Počítačové systémy LS 2007 -1/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Vážený poziční kód Obecný předpis čísla vyjádřeného v pozičním systému: C= n−1 X wi · bi i=−` b představuje základ zvoleného pozičního systému váha wi může nabývat pouze určitých hodnot (0. . . b − 1) Z hlediska výpočetní techniky jsou zajímavé poziční systémy o základu 2, 8, 16 označované jako binární, oktalové a hexadecimální. Příklad: 1823, 5610 = 1 · 103 + 8 · 102 + 2 · 101 + 3 · 100 + 5 · 10−1 + 6 · 10−2 1010, 1012 = 1 · 23 + 0 · 22 + 1 · 21 + 0 · 20 + 1 · 2−1 + 0 · 2−2 + 1 · 2−3 Miroslav Flídr Počítačové systémy LS 2007 -2/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Celá čísla s pevnou řádovou čárkou a znaménkem ➢ Čísla jsou zobrazena pomocí váženého pozičního systému, kde ` = 0 a řádová čárka je za poslední platnou číslicí. ➢ Je třeba rozlišit kladná a záporná čísla ⇒ nejvíce významný bit představuje znaménko. ➢ Je možné uvažovat pouze kladná čísla. ➢ Např. pro 8mi bitová čísla je možné zobrazit 28 = 256 čísel. Existuje několik druhů kódování celých čísel ➢ ➢ ➢ ➢ Miroslav Flídr přímý kód inverzní kód dvojkový doplněk excess 2n−1 − 1 Počítačové systémy LS 2007 -3/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Přímý kód (Signed magnitude) Představuje nejjednodušší způsob reprezentace celých čísel. ➢ nejvíce významný bit představuje znaménko ➢ zbylé bity představují velikost ➢ n-bitové celé číslo umožní zobrazit čísla v rozsahu −(2n−1 − 1) · · · 2n−1 − 1 Příklad: +3110 = 0|00111112 −3110 = 1|00111112 Nevýhody přímého kódu ➢ Poskytuje dvě reprezentace pro nulu (00000000 a 10000000). ➢ Nešikovné pro hardwarovou implementaci (složitá operace sčítání) Miroslav Flídr Počítačové systémy LS 2007 -4/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Dvojkový doplněk Nejčastěji používaný způsob kódování. ➢ kladná čísla jsou stejná jako v přímém kódu ➢ záporná čísla získáme invertováním kladného a přičtením jedničky Příklad: 7210 inverze +1 −7210 : 010010002 : 101101112 : 000000012 : 101110002 Vlastnosti dvojkového doplňku ➢ pouze jedna reprezentace pro nulu ➢ asymetrický rozsah čísel: −2n−1 · · · 2n−1 − 1 ➢ jednoduchá implementace sčítaní a odčítání Miroslav Flídr Počítačové systémy LS 2007 -5/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Posunuté kódování (excess-N) ➢ ➢ ➢ ➢ dvojkový doplněk se posouvá přičtením hodnoty N = 2n−1 − 1 zachovává význam znaménkového bitu (1 - kladné, 0 - záporné) usnadňuje porovnávnání/třídění čísel pouze jedna reprezentace pro nulu (011111112 ) Příklad: excess 127 +7210 −7210 Miroslav Flídr Počítačové systémy LS 2007 : 110001112 : 000101112 -6/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Reálná čísla Čísla v pevné řádové čárce ➢ používá se pouze pro speciální účely (finanční software) ➢ vhodné pro čísla se známou pevným formátem (např. měna) ➢ zobrazeny jako „přeškálovaná“ celá čísla Čísla v pohyblivé řádové čárce (floating-point čísla) ➢ používá se takzvaná vědecká notace R = s · m · be Hodnota dána znaménkem s, mantisou m a exponentem e při bázi číselného systému b. ➢ floating point čísla jsou pouhou aproximací reálných čísel ➢ dokáže zobrazit pouze konečný počet čísel ➢ častá nepřesnost zobrazení (např. není možné zobrazit číslo 1/10) Miroslav Flídr Počítačové systémy LS 2007 -7/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Floating-point čísla ➢ dříve různé konvence reprezentace floating-point čísel různé volby kódování mantisy a exponentu odlišný tvar mantisy (např. čistá desetinná část) rozdílné zobrazení tzv. normalizovaných čísel ➢ mnoho reprezentací vedlo k nekorektním aritmetickým operacím ➢ zavedena norma IEEE 754-1985 Co specifikuje standard IEEE 754 ➢ ➢ ➢ ➢ Miroslav Flídr formát reprezentace precizní specifikace výsledků operací speciální hodnoty předepsané chování při neplatných operacích Počítačové systémy LS 2007 -8/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Standard IEEE 754 Tři základní přesnosti zobrazení single-precision (32 bitové) double-precision (64 bitové) extended precision (80 bitové) – používá se jen jako interní formát Hodnota čísla zobrazeného dle standardu IEEE 754 F = (−1)sign · (1 + fraction) · 2exponent Miroslav Flídr Počítačové systémy LS 2007 -9/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Zobrazení čísla dle standardu IEEE 754 Exponent ➢ posunuté kódování ⇒ snadné třídění ➢ rozsah exponentů 2−126 · · · 2127 resp. 2−1022 · · · 21023 Mantisa ➢ tzv. signifikant je dán jako hodnota (1 + fraction) ➢ uvažuje se implicitní 1 vlevo od řádové čárky ➢ mantisa obsahuje pouze fraction (je normalizovaná) ➢ mantisa reprezentuje čísla 1 < m < 2 Příklad dekadické binární IEEE 754 Miroslav Flídr −0.75 = −3/4 = −3/22 −0.11 = −1.1 · 2−1 1 11111110 10000000000000000000000 Počítačové systémy LS 2007 -10/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Zobrazení čísla dle standardu IEEE 754 Typy čísel dle IEEE 754 normalizované denormalizované nula Inf NaN |±| |±| |±| |±| |±| 0 < ex ponent < max 000 · · · 0 000 · · · 0 111 · · · 1 111 · · · 1 | | | | | libovolný bitový vzor libovolný nenulový vzor 000 · · · 0 000 · · · 0 libovolný nenulový vzor Nástroje pro ošetření chyb ➢ ➢ ➢ ➢ Miroslav Flídr ošetření podtečení ⇒ rozšíření o denormalizovaná čísla ošetření přetečení ⇒ zavedeno číslo Inf obsahuje dvě nuly ⇒ mohou pomoci s určením znaménka přetečení nezobrazitelné/neexistující číslo Počítačové systémy LS 2007 -11/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Ošetření singulárních případů ve standardu IEEE 754 Ošetření podtečení ➢ doplnění o denormalizovaná čísla (bohužel nepovinné) ➢ nejmenší normalizované číslo 0 00000001 00000000000000000000000 = 1.0 × 2−126 ∼ 1.5 × 10−8 ➢ největší a nejmenší denormalizované číslo 0 00000000 11111111111111111111111 ∼ 0.9 · · · 9 × 2−127 ∼ 1.5 × 10−8 0 00000000 00000000000000000000001 = 2−23 × 2−127 ∼ 7 × 10−46 ➢ přijatelnější než rovnou zaokrouhlit k nule ➢ uvažována implicitní nula před desetinnou tečkou Miroslav Flídr Počítačové systémy LS 2007 -12/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Ošetření singulárních případů ve standardu IEEE 754 Ošetření přetečení ➢ speciální reprezentace pro nekonečno ➢ dvě nekonečna lišící se znaménkem 0 11111111 00000000000000000000000 = +Inf 1 11111111 00000000000000000000000 = −Inf ➢ uvažována implicitní nula před desetinnou tečkou ➢ Inf je možné použít v matematických operacích Inf + Inf = Inf Inf + C = Inf Inf - C = Inf C / 0.0 = Inf -C / 0.0 = -Inf C / Inf = 0.0 Miroslav Flídr Počítačové systémy LS 2007 -13/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Ošetření singulárních případů ve standardu IEEE 754 Nula ➢ zobrazení jako u denormalizovaných čísel 00000000000000000000000000000000 = +0.0 10000000000000000000000000000000 = −0.0 ➢ +0.0 a -0.0 jsou si rovny ➢ určení znaménka přetečení C / Inf = 0.0 C / -Inf = -0.0 1 / +0.0 = Inf 1 / -0.0 = -Inf Miroslav Flídr Počítačové systémy LS 2007 -14/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Ošetření singulárních případů ve standardu IEEE 754 NaN (Not a Number) ➢ ➢ ➢ ➢ Miroslav Flídr jakmile se během výpočtu vyskytne zůstane zachováno NaN není rovno žádnému číslu (ani sobě) NaN není ani větší ani menší než jakékoli číslo NaN reprezentuje výsledek všech operací, které vedou na exponent 11 · · · 1 a libovolnou nenulovou mantisu Inf / Inf = NaN 0.0 / 0.0 = NaN sqrt( -3 ) = NaN arccos( 2.4 ) = NaN log(-5) = NaN Počítačové systémy LS 2007 -15/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Celočíselná aritmetika Aritmetika s čísly v přímém kódu ➢ sčítaní při stejném znaménku sčítanců: sečtou se hodnoty čísel a zachová se znaménko k přetečení dojde jestliže součet hodnot je větší než 2(n−1) − 1 ➢ sčítaní při různých znaménkách sčítanců: nalezne se číslo s větší absolutní hodnotou a odečte se od něj menší číslo přetečení není možné ➢ násobení a dělení jednoduché: provede se operace pouze s hodnotami a znaménko se určí jako XOR původních znamének Příklad: −6410 + 110 ( 1 10000002 + 0 00000012 ) −6410 −110 −6310 Miroslav Flídr Počítačové systémy LS 2007 : 1 10000002 : 1 00000012 : 1 01111112 -16/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Celočíselná aritmetika Aritmetika s čísly v doplňkovém kódu ➢ ➢ ➢ ➢ ➢ sčítaní po bitech přenos z nejvíce významného bitu je zahozen při různých znaménkách nemůže dojít k přetečení jestliže se liší přenos do a ze znaménkového bitu došlo k přetečení liší-li se znaménko sčítanců a výsledku, tak došlo k přetečení odčítaní je provedeno přičtením negovaného čísla (převrácená hodnota všech bitů + 1) ⇒ není potřeba extra HW ➢ pro násobení a dělení se čísla převedou na kladná a po provedení operace se vyhodnotí znaménko Příklad: 6410 − 110 ( 1 10000002 − 0 00000012 ) 6410 +(−110 ) 6310 Miroslav Flídr Počítačové systémy LS 2007 : 1 10000002 : 1 11111112 : 0 01111112 -17/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Aritmetika s floating-point čísly Pro realizaci operací s floating point čísly není nutná speciální implementace v HW (postačí sčítání a posun). To umožňuje práci s těmito čísly i na levnějších systémech používaných např. ve vestavných systémech. Operace sčítání a odečítání s čísly v IEEE 754 formátu ① opětné vložení implicitního bitu (jedničky resp. nuly u denormalizovaných čísel) ② denormalizace - je nutné srovnat exponenty ③ vlastní operace sčítání/odečítání ④ opětovná normalizace ⑤ příprava před uložením ➭ ošetření „vysunutých“ bitů - použití guard bitů ➭ zaokrouhlení (k nule, k nejbližšímu, k plus nekonečnu, k mínus nekonečnu) ➭ odstranění implicitního bitu Miroslav Flídr Počítačové systémy LS 2007 -18/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Aritmetika s floating-point čísly Příklad sčítání (s použitím mini floating-point čísel) 3.2510 +0.12510 : 0 0001 1012 : +0 1101 0002 Denormalizace: : 0 0001 (1.)101(00)2 : +0 1101 (1.)000(00)2 3.2510 +0.12510 Srovnání exponentů a sečtení: : 0 0001 (1.)101(00)2 : 0 0001 (0.)000(10)2 : 0 0001 (1.)101(10)2 3.2510 +0.12510 3.37510 Normalizace: 3.37510 Miroslav Flídr 6 = 0 0001 1012 Počítačové systémy LS 2007 (3.2510 ) -19/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Aritmetika s floating-point čísly Operace násobení ① ② ③ ④ ⑤ opětné vložení implicitního bitu pronásobení mantis sečtení exponentů provést normalizaci posunem doprava a zvýšit exponent o počet posunů uložení výsledku bez implicitního bitu po zaokrouhlení Operace dělení ① ② ③ ④ ⑤ Miroslav Flídr opětné vložení implicitního bitu podělení mantis odečtení exponentů provést normalizaci posunem doleva a snížit exponent o počet posunů uložení výsledku bez implicitního bitu po zaokrouhlení Počítačové systémy LS 2007 -20/21- Západočeská univerzita v Plzni Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly "Give a digital computer a problem in arithmetic, and it will grind away methodically, tirelessly, at gigahertz speed, until ultimately it produces the wrong answer" – Brian Hayes, A Lucid interval, 2003 Problémy s aritmetikou s pevnou přesností ➢ zobrazená čísla mají omezenou přesnost a velikost (chyby zaokrouhlování, přetečení, podtečení) ➢ nepokrývají úplnou množinu celých resp. reálných čísel ➢ vzhledem k aritmetických operacích nejsou uzavřenými množinami ➢ neplatí obecně asociativita operací V jakých úlohách automatického řízení se projeví problémy? ➢ ➢ ➢ ➢ Miroslav Flídr řešení obyčejných lineárních rovnic vyšetřování řiditelnosti a pozorovatelnosti výpočty frekvenční odezvy výpočty Lyapunovy, Sylvestrovy a Riccatiho rovnice Počítačové systémy LS 2007 -21/21- Západočeská univerzita v Plzni
Podobné dokumenty
REF 610 - VF servis
a v prost edí mikroprocesorové techniky. innost
ochrany je trvale monitorována systémem
samo inné kontroly.
Rozhraní HMI obsahuje LCD displej, který
umož uje bezpe né a jednoduché místní ovládání
o...
Úvod
Mantisa a exponent jsou v počı́tači binárnı́ čı́sla, základ u exponentu je 2.
Délka MANTISY - tj. počet bitů na mantisu =⇒ přesnost čı́sla
přesnost ⇐⇒ počet čı́sel mezi 1 a 2
interval ...
• DT = datové typy • ADT/ADS = abstraktní datové typy / struktury
– celá čísla (byte, short, int, long), znaky (char), reálná čísla (float, double),
PostgreSQL návrh a implementace náročných databázových aplikací
Důležitá dostatečná rezerva, diagnostika a monitoring
Prezentace
přiměřeně atomické atributy
bez repeating att./groups
správné závislosti na klíči
redundance dat
Pocítacové systémy - Jednocipové mikropocítace (mikrokontroléry)
Registry speciálních funkcí - Určité pamět’ové místo, kde se soustřed’ují
důležité informace o stavu mikroprocesoru a jeho periferních obvodů, ale
zároveň i informace ovlivňující jeho další ...
Ferrolux FL 10
signálu na trasou vedení s ostrostí klasického minima. Tento
signál poskytuje jednoznačnou signální odezvu i v případech
paralelních souběhů. Signál SuperMaximum se v přijímači
získává invertováním...
Využití aproximačních funkcí pro kaskádní syntézu filtrů
Punčochář, J.: Využití aproximačních funkcí pro
kaskádní syntézu filtrů
Předvedený postup je pro větší hodnoty n obtížný. Vhodnější postup vypracoval Storch. Snadno určíme, že normovaný přenos
H (...