Zobrazení čísel v počítači

Transkript

Zobrazení čísel v počítači
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

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...

Více

Úvod

Ú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 ...

Více

• DT = datové typy • ADT/ADS = abstraktní datové typy / struktury

• DT = datové typy • ADT/ADS = abstraktní datové typy / struktury – celá čísla (byte, short, int, long), znaky (char), reálná čísla (float, double), 

Více

PostgreSQL návrh a implementace náročných databázových aplikací

PostgreSQL návrh a implementace náročných databázových aplikací Důležitá dostatečná rezerva, diagnostika a monitoring

Více

Prezentace

Prezentace přiměřeně atomické atributy bez repeating att./groups správné závislosti na klíči redundance dat

Více

Pocítacové systémy - Jednocipové mikropocítace (mikrokontroléry)

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ší ...

Více

Ferrolux FL 10

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...

Více

Využití aproximačních funkcí pro kaskádní syntézu filtrů

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 (...

Více