Principy počítačů I – Reprezentace dat snímek 1
___________________________________ ___________________________________ ___________________________________
Principy počítačů
___________________________________
Část III Reprezentace dat
___________________________________ ___________________________________
© VJJ
1
___________________________________
snímek 2
___________________________________
Symbolika musí být
___________________________________
• srozumitelná pro stroj, • snadno reprezentovatelná pomocí fyzikálních veličin • vhodně převoditelná do symbolů srozumitelných člověku • dostatečně obecná pro záznam i složitých představ
___________________________________ ___________________________________ ___________________________________ ___________________________________
© VJJ
2
___________________________________
snímek 3
___________________________________
Typy dat
___________________________________
Čísla
Data
Nenumerická data (literály)
___________________________________
Instrukce
___________________________________
Každý datový typ může být popsán • jednoznačným kódováním uvnitř jednotky dat (syntaxe) • omezením možných hodnot (sémantika) • omezením možných transformací © VJJ
___________________________________ ___________________________________ 3
___________________________________
snímek 4
___________________________________
Reprezentace dat
___________________________________
Data reprezentujeme pomocí kódů
Kódy pro reprezentaci literálů
Kódy pro reprezentaci čísel
• logické hodnoty
• čísla s pevnou řádovou čárkou
• znaky abecedy • grafické symboly
___________________________________ ___________________________________ ___________________________________
• čísla s pohyblivou řádovou čárkou
___________________________________ © VJJ
4
___________________________________
snímek 5
___________________________________
Logické hodnoty
___________________________________
Celá datová jednotka reprezentuje logickou hodnotu 1 1 1 11 11 1 TRUE Logická hodnota
000 00 00 0
___________________________________
FALSE
___________________________________
Logická hodnota je reprezentována skupinou bitů nebo jediným bitem XX XXX X 1 X
TRUE
___________________________________
X X XX X X 0 X
FALSE
___________________________________ © VJJ
5
___________________________________
snímek 6
___________________________________
Znaky (1)
___________________________________ Znaky jsou reprezentovány přiřazenými hodnotami - kódy
___________________________________
např. znak "0" → binární hodnota 0011 0000 znak "1" → binární hodnota 0011 0001
___________________________________
znak “2" → binární hodnota 0011 0010 ... atd.
___________________________________ ___________________________________
© VJJ
6
___________________________________
snímek 7
___________________________________
Znaky (2)
___________________________________
• kód BCD a odvozené kódy ? ?
EBCDIC DKOI
___________________________________
• kód ASCII a odvozené kódy ? ? ? ? ?
KOI8-cs EAST8 PC standard Latin 2 1250 MS Windows
___________________________________ ___________________________________
• speciální kódy ?
Unicode
___________________________________
© VJJ
7
___________________________________
snímek 8
___________________________________
Kód BCD a EBCDIC Binary Coded Decimal je čtyřbitový váhový kód vyjadřující desítkové číslice 0 až 9. Má velkou redundanci.
Extended Binary Coded Decimal Interchange Code vznikl z kódu BCD a obsahuje 256 závazných znaků.
Pakované decimální číslo
• 00H až 3FH - speciální znaky • 40H až FFH - tištitelné znaky
"9" = "1001"
___________________________________
• obsahuje mnoho volných kódů
Dekadická cifra (4 bity)
___________________________________ ___________________________________
• malá abeceda, velká abeceda, čísla
± d d d d d d d d d d d d
___________________________________
Znaménko (4 bity)
___________________________________ © VJJ
8
___________________________________
snímek 9
___________________________________
Kódy ASCII a odvozené Základní tabulka ASCII (American Standard Code for Information Interchange) byla definována pro sedm bitů.
b3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 © VJJ
b2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
b1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
b6 b5 b4 b0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
___________________________________
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
space ! " # $ % & ' ( ) * + , . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ↑ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~ DEL
___________________________________ ___________________________________ ___________________________________ ___________________________________ 9
___________________________________
snímek 10
___________________________________
Rozšíření ASCII
___________________________________
Kód ASCII byl rozšířen přidáním osmého bitu na 256 znaků a tato rozšířená sada má varianty dle ISO/IEC*:
___________________________________
1. Latin alphabet No. 1
6. Latin/Arabic
2. Latin alphabet No. 2
7. Latin/Greek
3. Latin alphabet No. 3
8. Latin/Hebrew
4. Latin alphabet No. 4
9. Latin alphabet No. 5
___________________________________
5. Latin/Cyrillic
___________________________________
* Norma ISO/IEC 8859
___________________________________
© VJJ
10
___________________________________
snímek 11
___________________________________
Číselné soustavy Polyadické Jeden základ
A=
___________________________________
Nepolyadické
Více základů
___________________________________
Velikost čísla nelze získat polyadickým součtem
___________________________________
n −1
∑a
i= − m
i
zi
Používané základy 2, 10, 16
Nepolyadická soustava např. • římské číslice, • soustava zbytkových tříd
___________________________________ ___________________________________
© VJJ
11
___________________________________
snímek 12
___________________________________
Nepolyadické číselné soustavy soustava zbytkových tříd
___________________________________
Soustava je definována pomocí uspořádané k-tice vzájemně různých prvočísel základů z0, z1, z2, ... , zn. Obraz čísla A je pak uspořádaná k-tice celých čísel a0, a1, a2, ... , an pro která platí ai < zi , ai = A mod zi
___________________________________ ___________________________________
Příklad: základy 2, 3, 5 číslo 5 @ 120 trojice zbytků po dělení © VJJ
Jednoznačné pouze pro
A<
∏z
___________________________________
i
i
___________________________________ 12
___________________________________
snímek 13
___________________________________
Polyadické soustavy
___________________________________
Pro číslo x a základ r pro každou číslici platí x = an-1rn-1 + an-2rn-2 + ... + a0r0
___________________________________
= a0 + r.( a1 + r.( a2 + ... + r.(an-2 + r.an-1)))..) pro jiný základ t bude pro x platit
___________________________________
x = b0 + t.( b1 + t.( b2 + ... + t.(bn-2 + t.bn-1)))..) x =Q + R t
kde
___________________________________
Q = b1 + t.( b2 + t.( b3 .... t.bm-1))) ..) R = b0
___________________________________ © VJJ
13
___________________________________
snímek 14
___________________________________
Převodní algoritmus Převáděné číslo v soustavě r
___________________________________
Dělit základem nové soustavy (t)
___________________________________
Výsledek dělení
NE
Výsledek je nula?
ANO
Zbytek = bn
___________________________________
Zbytek = bn-1
___________________________________
Konec
© VJJ
___________________________________ 14
___________________________________
snímek 15
___________________________________
Příklad převodů Převést 35510 do binární soustavy
:2 :2 :2 :2 :2 :2 :2 :2 :2
355 177 88 44 22 11 5 2 1 0
b0 = 1 b1 = 1 b2 = 0 b3 = 0 b4 = 0 b5 = 1 b6 = 1 b7 = 0 b8 = 1
Převést 1349 do sedmičkové soustavy
:7 :7 :7
134 17 2 0
b0 = 0 b1 = 2 b2 = 2
___________________________________ ___________________________________
b2b1b0 = 220
___________________________________
b8b7b6 .... b0 = 101100011
© VJJ
___________________________________
___________________________________ 15
___________________________________
snímek 16
___________________________________
Při převodu celého čísla
___________________________________ • původní číslo dělíme novým základem
___________________________________
• aritmetika dělení je realizována v původním základu
___________________________________
• první zbytek je číslice s nejnižší vahou
___________________________________ ___________________________________
© VJJ
16
___________________________________
snímek 17
___________________________________
Konverze zlomkové části
___________________________________ • hledají se násobky původní hodnoty, aby se zjistily číslice s vahou tn
___________________________________
• číslice s největší vahou je ta, která je výsledkem první operace násobení
___________________________________
• tato číslice musí být první číslicí za řádovou čárkou
___________________________________ ___________________________________
© VJJ
17
___________________________________
snímek 18
___________________________________
Převody desetinných částí
___________________________________
Převáděná desetiná část v desítkové soustavě
___________________________________
Násobit základem binární soustavy Výsledek násobení Desetinná část
NE
© VJJ
___________________________________
Celá část = b-n
Celá část
Desetinná část je nula?
ANO
___________________________________ Konec
___________________________________ 18
___________________________________
snímek 19
___________________________________
Příklad převodu desetinné části
___________________________________
Převést číslo 0,656 do binární soustavy
0,656 1,312 0,312 0,624 0,624 1,248 0,248 0,496 ........
x2 x2 x2 x2
___________________________________
b-1 = 1 b-2 = 0
___________________________________
b-3 = 1 b-4 = 0
b0,b-1b-2b-3 ... = 0,1010 ...
___________________________________
Převod nemusí mít konečný počet číslic © VJJ
___________________________________ 19
___________________________________
snímek 20
___________________________________
Chyby při konverzi (1)
___________________________________
• chyba vznikající při pořizování čísla • chyba způsobená zavedením stupnice (scaling error)
___________________________________
• chyba způsobená zanedbáním části čísla (trunkation error)
___________________________________ ___________________________________
• chyba způsobená zaokrouhlením (rounding error) © VJJ
___________________________________ 20
___________________________________
snímek 21
___________________________________
Chyby při konverzi (2)
___________________________________ ___________________________________
Průběh chyby vzniklé zavedením stupnice: Velikost chyby
3,0
2,0
1,0
0,5
0,0
___________________________________ 1,0
2,0
3,0
Zobrazitelné hodnoty
___________________________________ ___________________________________
© VJJ
21
___________________________________
snímek 22
___________________________________
Chyby při konverzi (3)
___________________________________ Průběh chyby vzniklé zaokrouhlením nebo odseknutím
___________________________________ Velikost chyby ε
1,0
-2
-1
0
___________________________________ 1
2
Zobrazitelné hodnoty
___________________________________ ___________________________________
© VJJ
22
___________________________________
snímek 23
___________________________________
Zaokrouhlování
___________________________________
Provést převod na n+1 číslic
NE
Zanedbat n+1 bit
Je n+1 bit = 1
___________________________________
ANO
___________________________________
Přičíst 2-(n+1)
___________________________________
Při zaokrouhlování se • chyba převodu rozloží symetricky okolo nuly s nulovou střední hodnotou, -2-(n+1) ≤ ≤ 2-(n+1), • nárůst kumulativní chyby bude s druhou odmocninou © VJJ
___________________________________ 23
___________________________________
snímek 24
___________________________________
Příklad zaokrouhlování
___________________________________
Desítkové číslo 0,467 převést do binárního tvaru s přesností na tři místa za řádovou čárkou. x2 x2 x2 x2
0,467 0,934 0,934 1,868 0,868 1,736 0,736 1,472 0,472
b-1 = 0 b-2 = 1 b-3 = 1 b-4 = 1
___________________________________
Bez zaokrouhlení 0,0112 @ (0,37510) = 0,092
___________________________________
Se zaokrouhlením 0,1002 @ (0,510) = -0,033
___________________________________ ___________________________________
© VJJ
24
___________________________________
snímek 25
___________________________________
Čísla s pevnou řádovou čárkou Hlavní používané formáty 2n-1 2n-2 řádová čárka
20
2-1
2n-1 2n-2
řádová čárka
S
21
20
___________________________________
řádová čárka
___________________________________
2-n+1 2-n
20 2-1
___________________________________
2-m
1
___________________________________
2-m+1 2-m
řádová čárka
___________________________________
© VJJ
25
___________________________________
snímek 26
___________________________________
Binární čísla bez znaménka
___________________________________ 2n-1 2n-2 n-1
n-2
21 ..................................................
................................................................... 4
•
20
1
0 mocnina
2
1 váha bitu
___________________________________ ___________________________________
řádová čárka může být umístěna kdekoliv, podle jejího umístění se mění váhy jednotlivých bitů,
•
reprezentace je omezena počtem použitelných bitů,
•
při aritmetických operacích může být zvolený počet bitů nedostatečný (přetečení, podtečení)
© VJJ
___________________________________ ___________________________________ 26
___________________________________
snímek 27
___________________________________
Binární čísla se znaménkem
___________________________________ se znaménkem do reprezentace čísla se doplní zvláštní - znaménkový - bit
s posunutím
___________________________________
k číslu se přičte konstanta, která reprezentuje nulu
___________________________________
Nevýhody • dvě nuly (kladná a záporná) • časově náročné algoritmy pro aritmetiku
Odstraňuje nevýhody reprezentace se znaménkem
Normální zobrazení © VJJ
Komplementární zobrazení
___________________________________ ___________________________________
27
___________________________________
snímek 28
___________________________________
Dvojkový doplněk • patří mezi nejpoužívanější metody záznamu záporných i kladných čísel • nula je reprezentována jako 000...000 a je odstraněna nespojitost v okolí nuly → zjednodušení aritmetiky • kód je symetrický okolo osy -?
___________________________________
Dvojkový komplement 0111 . . 0010 0001 0000 1111 1110 . . 1001 0000
Hodnota +7 . . +2 +1 0 -1 -2 . . -7 -8
___________________________________ ___________________________________ ___________________________________ ___________________________________
© VJJ
28
___________________________________
snímek 29
___________________________________
Příklady reprezentace Hodnota +7 . . +4 +3 +2 +1 +0 - 0 - 1 - 2 - 3 - 4 . - 7 - 8
Posunutí 1111 . . 1100 1011 1010 1001 1000 1000 0111 0110 0101 0100 . 0001 0000
Doplněk 0000 . . 0011 0100 0101 0110 0111 0111 1000 1001 1010 1011 . 1110 1111
___________________________________
Znaménko 0111 . . 0100 0011 0010 0001 0000 1000 1001 1010 1011 1100 . 1111 ????
© VJJ
___________________________________ ___________________________________ ___________________________________ ___________________________________ 29
___________________________________
snímek 30
___________________________________
Čísla v kódu BCD bez znaménka
___________________________________
b4 b3 b2 b1
dn
dn-1
d2
d1
d0
10n
10n-1
102
101
100 desítková mocnina
................................................ 100
10
•
© VJJ
1
___________________________________
váha číslice
___________________________________
řádová čárka může být umístěna kdekoliv, podle jejího umístění se mění váhy jednotlivých skupin bitů,
•
reprezentace je omezena počtem skupin bitů,
•
při aritmetických operacích může být zvolený počet skupin bitů nedostatečný (přetečení, podtečení)
___________________________________ ___________________________________ 30
___________________________________
snímek 31
___________________________________
Čísla v kódu BCD se znaménkem
___________________________________ desítkový komplement
se znaménkem
___________________________________
podobně jako dvojkový komplement Např. (-39) → 100 - 39 = 61
S dn-1
d2 d1 d0
s3 s2 s1 s0
b3 b2 b1 b0
___________________________________
(-42) → 100 - 42 = 58 pak rozdíl
(-39) - (-42)
je ekvivalentní 61 - 58 = 3 ! Operace jsou prováděny mod 10 !
+
1 1 0 0
-
1 1 0 1
Kód znaménka, např. EBCDIC
© VJJ
___________________________________ ___________________________________ 31
___________________________________
snímek 32
___________________________________
Redundance záznamu v BCD (1)
___________________________________
Pro reprezentaci čísla v binárním záznamu je potřeba
n > log2 x bitů
___________________________________
Pro reprezentaci téhož čísla v BCD je třeba
m > log10 x bitů
___________________________________
Celková redundance záznamu
4 . log 10 x = 4 . log 10 2 = 1, 204 .. log 2 x
___________________________________
!!! Platí pro reprezentaci dlouhých čísel !!! © VJJ
___________________________________ 32
___________________________________
snímek 33
___________________________________
Redundance záznamu v BCD (2)
___________________________________ ___________________________________
Pro jednotlivé číslice je redundance dána vztahem
6 3 = = 37,5 % 16 8
___________________________________ ___________________________________ ___________________________________
© VJJ
33
___________________________________
snímek 34
___________________________________
Pohyblivá řádová čárka
___________________________________
exponent
x = A . ze mantisa
základ
___________________________________
Existuje nejednoznačnost
___________________________________
x = A . ze = (A . z-) . z(e+) = A' . ze' úmluva
___________________________________
NORMALIZACE z-1 ≤ A < 1
___________________________________ © VJJ
34
___________________________________
snímek 35
___________________________________
Předpoklady Pro zobrazení čísla musí být známo
___________________________________
Pro mantisu i exponent
• velikost (explicitně)
___________________________________
• základ (implicitně) • znaménko (explicitně) Mantisa
• posice řádové čárky základu Exponent
___________________________________
... 20
...2m 2k ...
2n ...
01101...10011 1001 ... 001110100101001
___________________________________
řádová čárka Mantisa je zlomek
___________________________________
Mantisa je celé číslo
© VJJ
35
___________________________________
snímek 36
___________________________________
Používaná zobrazení Znaménko exponentu
Řádová čárka exponentu
± ±
Exponent
Znaménko mantisy
Znaménko mantisy © VJJ
Mantisa
___________________________________
Řádová čárka exponentu i mantisy
± (sExponent posunem) Znaménko mantisy
___________________________________
Řádová čárka mantisy
±
1. Exponent
Mantisa
___________________________________
Mantisa (vždy normalizována)
___________________________________
Řádová čárka exponentu i mantisy
___________________________________ 36
___________________________________
snímek 37
___________________________________
Normalizace Exponent
(základ binární)
1 ....
Exponent
(základ hex)
±
___________________________________
kvartet > 0
0101... Mantisa (normalizována)
Exponent
___________________________________
Mantisa BCD (normalizována)
0110 ...
(základ dekadický)
___________________________________
kvartet > 0
}
±
___________________________________
Mantisa (normalizována)
}
±
___________________________________ © VJJ
37
___________________________________
snímek 38
___________________________________
Příklad normalizace
___________________________________
Číslo 0,375 jako číslo v plovoucí řádové čárce s exponentem o binárním základu ve tvaru s posunem o 64 ±
1
Exponent
___________________________________
Mantisa
9
23
Počet bitů
___________________________________
Nenormalizovaný tvar 1 001000000 01100... Normalizovaný tvar 1 000111111 11000... Normalizace se skrytým bitem 1 000111110 10000... © VJJ
___________________________________ ___________________________________ 38
___________________________________
snímek 39
___________________________________
Přesnost záznamu reálných čísel (1) Způsob záznamu čísla Dekadický, v pevné 178,125 řádové čárce Dekadický, vědecký Binární vědecký
___________________________________
Hodnota
___________________________________
1,78125 E10 2 1,0110010001 E2 111
Binární vědecký 1,0110010001 E2 10000110 (exponent s posunem) Exponent Znaménko Formátovaný zápis s posunem binárního vědeckého záznamu 0 10000110 (exponent s posunem)
___________________________________
Normalizovaná mantisa
___________________________________
01100100010000000000000
___________________________________ © VJJ
39
___________________________________
snímek 40
___________________________________
Reprezentovatelnost
___________________________________
Množina binárních reálných
-100
-10
-
0 +1
+10
+100
___________________________________
Podmnožina binárních reálných čísel, které mohou být reprezentovány v počítači
-100 Čísla v tomto intervalu nemohou být representována
-10
-
0 +1
+10
___________________________________
+100
+10
___________________________________
10,0000000000000000000 1,11111111111111111111
___________________________________
24 © VJJ
40
___________________________________
snímek 41
___________________________________
Norma IEEE-754
___________________________________
• Doporučení IEEE (Institute of Electrical a Electronics Engineers) pro reprezentaci čísel v pohyblivé řádové
___________________________________
čárce • První vydání 1985, úprava 1987 - doporučení IEEE-854
___________________________________
• Není závazná, ale podporuje ji většina výrobců • Nejčastější implementace pro 32 bit (single precision) a
___________________________________
64 bit (double precision)
___________________________________ © VJJ
41
___________________________________
snímek 42
___________________________________
Základní atributy pro každý typ parametry
___________________________________
omezující podmínky
___________________________________
(-1)s . bE . (d0 d1 d2 ... dp-1) b
= základ
p
= počet číslic v mantise při základu b
Emax = maximální exponent Emin = minimální exponent
b je buď 2 nebo 10* a je stejné pro všechny definované typy
___________________________________
(Emax - Emin)/p musí být > 5 a doporučuje se, aby bylo > 10
___________________________________
bp-1 > 105
* zavedeno až s normou IEEE-854 © VJJ
___________________________________ 42
___________________________________
snímek 43
___________________________________
Reprezentace typu Dvě nekonečna, - a +
Číslo ve tvaru (-1)s. bE. (d0 d1 d2 ..... dp-1) kde s je algebraické znaménko, E je libovolné celé číslo mezi Emin a Emax včetně, di číslice se základem b
Normální
Signální NaN
___________________________________
Tiché NaN
___________________________________ ___________________________________
Subnormální číslo je takové, jehož exponent je minimální a úvodní číslice mantisy je nula.
Nula
___________________________________
Subormální
___________________________________
© VJJ
43
___________________________________
snímek 44
___________________________________
Hodnoty v IEEE-754 32-bit
___________________________________
Exponent E Mantisa M E = 255 M=0 E = 255 M g0 0 < E < 255 normalizovaná nenormalizovaná E=0 E=0 M=0
Hodnota V V= V = NaN
___________________________________ ___________________________________
V = (-1)s.2E-127. 1,M V = (-1)s.2-126. 0,M
0
___________________________________ ___________________________________
© VJJ
44
___________________________________
snímek 45
___________________________________
Speciální hodnoty v IEEE-754 32-bit Sign Exponent (hexa) 0 00H 1 00H 0 FFH 1 FFH 0 FFH 1 FFH
Mantisa (hexadecimálně) 000000H 000000H 000000H 000000H 0234ABH F00011H
___________________________________ Hodnota (decimálně)
___________________________________
+0 -0 + - NaN NaN
___________________________________ ___________________________________ ___________________________________
© VJJ
45
___________________________________
snímek 46
___________________________________
Číselné hodnoty v IEEE-754 32-bit Sign
Exponent (hex) 80H 81H 81H 01H 00H 00H
0 0 1 0 0 0
___________________________________
Mantisa (hex) 000000H 500000H 500000H 000000H 800000H 000001H
Hodnota (decimálně) 2 6,5 -6,5 2-126 2-127 2-149
___________________________________ ___________________________________ ___________________________________ ___________________________________
© VJJ
46
___________________________________
snímek 47
___________________________________
Hodnoty v IEEE-754 64-bit
___________________________________
Exponent E Mantisa M E = 2047 M=0 E = 2047 M g0 0 < E < 2047 normalizovaná nenormalizovaná E=0 E=0 M=0
Hodnota V V= V = NaN
___________________________________ ___________________________________
V = (-1)s.2E-1023. 1,M V = (-1)s.2-1022. 0,M
___________________________________
0
___________________________________ © VJJ
47
___________________________________
snímek 48
___________________________________
Reprezentace reálných čísel v procesorech Intel (1) ± Exponent 31 30
± 63 62
±
___________________________________
Mantisa
23 22
0
Exponent
___________________________________
Mantisa 52 51
0
Exponent
79 78
___________________________________
Mantisa 64 63
0
___________________________________
Numerická hodnota
= (-1)s * 2(<exponent> - <posun>) * <mantisa>
___________________________________ © VJJ
48
___________________________________
snímek 49
___________________________________
Reprezentace reálných čísel v procesorech Intel (2)
___________________________________ ___________________________________
+0
-∞ -Normalizovaná konečná čísla
+∞
___________________________________
+Normalizovaná konečná čísla
-0
-Denormalizovaná konečná čísla
+Denormalizovaná konečná čísla
___________________________________
Formát záznamu odpovídá velikosti čísla
___________________________________ © VJJ
49
___________________________________
snímek 50
___________________________________
Reprezentace reálných čísel v procesorech Intel (3) Exponent
S
___________________________________ ___________________________________
Mantisa
0
0
___________________________________
Znaménko
Zobrazení reálných nul
___________________________________ ___________________________________
© VJJ
50
___________________________________
snímek 51
___________________________________
Reprezentace reálných čísel v procesorech Intel (4) Exponent
S
0
Znaménko
___________________________________
Mantisa
___________________________________
0,xxx... a) denormalizovaná
Exponent
S
1..254
___________________________________
Mantisa
jakákoli hodnota
___________________________________
Znaménko a) normalizovaná
___________________________________
Normalizované a denormalizované konečné hodnoty © VJJ
51
___________________________________
snímek 52
___________________________________
Reprezentace reálných čísel v procesorech Intel (5) Exponent
S
___________________________________ ___________________________________
Mantisa
255
0
___________________________________
Znaménko
___________________________________
Nekonečna se znaménkem
___________________________________ © VJJ
52
___________________________________
snímek 53
___________________________________
Reprezentace reálných čísel v procesorech Intel (6) Exponent
S
___________________________________
Mantisa
255
___________________________________
1,0xx...
Znaménko
a) signální Exponent
S
___________________________________
Mantisa
255
1,1xx...
Znaménko
___________________________________
b) tiché
Nečíselné hodnoty (NaN)
___________________________________
© VJJ
53
___________________________________
snímek 54
___________________________________
Reprezentace reálných čísel v procesorech Intel (7)
___________________________________
Mantisa
Kladná čísla
Zobrazená entita +∞
Záporná čísla NaN
Posunutý exponent
Celá část
0
11 ... 11
0
11 ... 10 až 00 ... 01
1
11 ... 11 až 00 ... 00
+ denormalizovaná
0
00 ... 00
0
11 ... 11 až 00 ... 01
0
00 ... 00
1
Zlomková část
+ normalizovaná
+0
© VJJ
Sign
0
___________________________________
00 ... 00
-0
1
00 ... 00
0
00 ... 00
- denormalizovaná
1
00 ... 00
0
00 ... 01 až 11 ... 11
1
00 ... 01 až 11 ...10
1
00 ... 00 až 11 ... 11
- normalizovaná
___________________________________
00 ... 00
-∞
1
11 ... 11
1
00 ... 00
signální NaN
X
11 ... 11
1
0X ... X
tiché NaN
X
11 ... 11
1
1X ... X
"nedefinováno"
1
11 ... 11
1
10 ... 00
___________________________________ ___________________________________ 54
___________________________________
snímek 55
___________________________________
Strategie aritmetických operací sčítání a odčítání I V pohyblivé řádové čárce neplatí vždy asociativní zákon
důvod?
___________________________________
Omezená délka zobrazení - přesnost
___________________________________
Operaci
___________________________________
M 1 . 2 E1 + M 2 . 2 E2
___________________________________
lze provést pouze je-li E1 = E2 Pokud je E1 ≠ E2 , jeden operand musí být denormalizován! © VJJ
___________________________________ 55
___________________________________
snímek 56
___________________________________
Strategie aritmetických operací sčítání a odčítání II
___________________________________ ___________________________________
k přetečení zlomkové části Při operaci sčítání nebo odčítání může dojít
k podtečení zlomkové části
___________________________________
k přetečení exponentu ke ztrátě přesnosti (chyba porovnání)
___________________________________ ___________________________________
© VJJ
56
___________________________________
snímek 57
___________________________________
Strategie aritmetických operací násobení a dělení
___________________________________
Pro násobení platí
___________________________________
M 1.2 E1 . M 2 .2 E2 = ( M 1. M 2 ).2( E1 + E2 )
___________________________________
a pro dělení
M 1.2 E1 M 1 ( E1 − E2 ) = .2 M 2 .2 E2 M 2
___________________________________ ___________________________________
© VJJ
57
___________________________________
snímek 58
___________________________________
Speciální typy záznamu čísel
___________________________________
Záznam komplexních čísel
Racionální záznam
___________________________________ ±
Čitatel (celé číslo se znaménkem)
± Exponent
Mantisa reálné části
Jmenovatel (celé číslo bez znaménka)
± Exponent Mantisa imaginární části
Nepoužívá se jako strojový typ, pouze reprezentace v podprogramech nebo specializovaných mikroprogramech
Obě části reprezentovány jako čísla v plovoucí řádové čárce, vyskytují se zřídka
___________________________________ ___________________________________ ___________________________________
© VJJ
58
___________________________________
snímek 59
___________________________________
Data s automatickou identifikací Tagy
___________________________________
Deskriptory
Program
Datová jednotka Informační bity
Atr. Atr. Atr. Atr.
Ukazatel Ukazatel Ukazatel Ukazatel
Atr. Atr. Atr. Atr.
Ukazatel Ukazatel Ukazatel Ukazatel
Paměť
___________________________________
Tag
___________________________________ ___________________________________ ___________________________________
© VJJ
59
___________________________________
snímek 60
___________________________________
Kombinace tagů a deskriptorů Atr. Atr. Atr. Atr.
Ukazatel Ukazatel Ukazatel Ukazatel
Atr. Atr. Atr. Atr.
Ukazatel Ukazatel Ukazatel Ukazatel
Paměť
Program
___________________________________ Data Data Data Data Data Data Data Data Data Data
Tag Tag Tag Tag Tag Tag Tag Tag Tag Tag
___________________________________ ___________________________________ ___________________________________ ___________________________________
© VJJ
60
___________________________________
snímek 61
___________________________________
Objekty Paměťové jednotky jsou realizovány jako objekty, pro které platí:
___________________________________
• Objekt může být vytvořen nebo zrušen jenom jako celá entita, • K objektu lze přistupovat jenom jako k celku, • Vnitřní struktura objektu je neviditelná • Objekt je transformovatelný pomocí instrukcí • Objekt obsahuje autoidentifikační informaci © VJJ
___________________________________ ___________________________________ ___________________________________ ___________________________________
61
___________________________________