. .
Vnitřní reprezentace dat Výpočetní technika I Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně
[email protected]
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Osnova přednášky Práce s počítačem — ergonomie — údržba počítače
Číselné soustavy — poziční a nepoziční soustavy — převody mezi soustavami — aritmetické operace v různých soustavách
Uložení dat v paměti počítače — — — —
čísla znaky zvuky obrazy Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Práce s počítačem Ergonomie
Ergonomie Nauka o tom, jak má člověk pracovat u počítače, aby mu to způsobilo co nejmenší zdravotní újmu Tělo — — — — —
lokty ohnuté do pravého úhlu, drženy u těla zápěstí narovnaná, nepokládáme před klávesnici prsty nad klávesami mírně pokrčíme myš držíme volně, nepokládáme zápěstí na podložku nohy jsou volně položeny celou plochou chodidla na podlaze
Poloha monitoru — — — —
při práci s počítačem velmi trpí zejména oči doporučená vzdálenost od monitoru je 40–60 cm kratší vzdálenost poškozuje oči vlivem viditelného záření delší vzdálenost poškozuje oči namáhavým zaostřováním Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Práce s počítačem Údržba počítače
Údržba počítače Prach, tekutiny, drobky, mechanické vlivy — počítač je plný elektroniky, proto přitahuje prach ve velké míře — na základní oprášení postačí suchá nebo polosuchá prachovka, pozor na únik tekutin — obvykle jednou ročně je třeba provést důkladnější údržbu vnitřku počítače vysavačem — klávesnice vyžaduje speciální údržbu
Teplo — — — —
urychluje korozi a zkracuje životnost součástek vrstva prachu uvnitř počítače tepelně izoluje počítač neumisťujeme do blízkosti topných těles pozor na tepelný šok při přenosu z chladu do tepla Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Práce s počítačem Údržba počítače
Údržba počítače Cigarety — kouření v blízkosti počítače zkracuje životnost až o 40 % — pevný disk je uzavřen ve vzduchotěsné schránce — molekuly v cigaretovém kouři jsou ale mnohem menší než molekuly vzduchu!
Magnetické a elektromagnetické pole, elektřina, záření — škodí především datům uloženým na magnetických pamětech (pevný disk, disketa) — motor tiskáren může produkovat elektromagnetické pole — magnetické šroubováky v blízkosti počítače nepoužíváme — do zásuvky, ve které je počítač, by neměly být zapojeny žádné větší motory ani topná tělesa — přímé sluneční záření škodí monitorům, obraz bledne Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy
Číselné soustavy Způsob reprezentace čísel Rozdělení podle způsobu určení hodnoty čísla z dané reprezentace Čísla se skládají z uspořádané množiny symbolů – číslic Poziční soustavy — hodnota každé číslice je dána její pozicí v sekvenci symbolů — pozicí je dána váha pro výpočet celkové hodnoty čísla — nezbytným předpokladem je objevení symbolu pro nulu
Nepoziční soustavy — hodnota číslice není dána jejím umístěním v sekvenci číslic — neobsahují symbol pro nulu a záporná čísla Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Nepoziční soustavy
Nepoziční soustavy Dnes téměř nepoužíváno, spíše historická záležitost Výhodou jednoduché sčítání a odečítání Nevýhodou dlouhý zápis čísel, která výrazně převyšují hodnotu největšího symbolu soustavy
mayské číslice
egyptské číslice Výpočetní technika I
řecké číslice
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Nepoziční soustavy
Nepoziční soustavy Římské číslice — způsob zápisu čísel pomocí písmen abecedy — základem soustavy je sedm symbolů: M = 1 000 X = 10 C = 100 I=1 D = 500 V=5 L = 50 — „Ivan Vedl Xénii Lesní Cestou Do Města“ — „Ivan, Vašek, Xénie Lijí Cín Do Mumie“ — větší číslice vždy předcházejí menším — ve středověku byly pro zkrácení zápisu doplněny složené symboly, u kterých menší číslice předchází větší CD = 400 IV = 4 XL = 40 CM = 900 XC = 90 IX = 9
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Nepoziční soustavy
Nepoziční soustavy Unární číselná soustava — číslo je vyjádřeno opakováním jediného (stejného) symbolu
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Poziční soustavy
Poziční soustavy Nejrozšířenější jsou polyadické soustavy o základu z, kde z je celé číslo větší než 1 Taková soustava má z různých číslic (například desítková soustava obsahuje číslice 0–9) Způsoby vyjádření čísla — poziční zápis
(an …a0 )z — polynomiální zápis
±
+∞ ∑
ai zi , kde ai ∈ {0, …, z − 1}
i=−∞
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Poziční soustavy
Významné soustavy Dvojková soustava (binární) – 2 číslice (0, 1) Osmičková soustava (oktalová) – 8 číslic (0, 1, …, 7) Desítková soustava (dekadická) – 10 číslic (0, 1, …, 9) Šestnáctková soustava (hexadecimální) – 16 číslic Jak vyjádřit šestnáctkovou soustavu, když máme k dispozici jen 10 číslic? — použijeme písmena anglické abecedy — 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F — šestnáctková soustava tedy obsahuje číslice 0, 1, …, F
Za jakou soustavu lze považovat Morseovu abecedu? Jaké číselné soustavy ještě znáte a běžně používáte? Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Poziční soustavy
Důvody pro zavedení dvojkové soustavy Počítač je zařízení, které zpracovává jen číselné údaje Tyto číselné údaje jsou v počítači uloženy ve dvojkové soustavě, tj. v podobě 0 a 1 Technicky není problém rozlišit dva různé stavy (proud protéká × neprotéká) Nejmenší jednotkou paměti je buňka, která dokáže uchovat informaci o velikosti 1 bitu Dvojkovou soustavu představil již německý filozof, vědec a matematik Gottfried Wilhelm von Leibniz (1646–1716)
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Převody mezi soustavami Převod z desítkové soustavy do libovolné soustavy
Převody mezi soustavami Převod z desítkové soustavy do libovolné – postupně dělíme základem cílové soustavy a sbíráme zbytky Hledáme hodnoty a0 , …, an tak, aby platilo x = an zn + … + a1 z + a0 Příklad: převádíme 123 do devítkové soustavy 123 div 9 = 13 123 mod 9 = a0 = 6 13 div 9 = 1 13 mod 9 = a1 = 4 1 div 9 = 0 1 mod 9 = a2 = 1 Kontrola: x = a2 z2 + a1 z1 + a0 = 1 · 92 + 4 · 91 + 6 = 123 12310 = 1469
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Převody mezi soustavami Převod z desítkové soustavy do libovolné soustavy
Převody mezi soustavami Desetinná čísla při převodu rozdělíme na celou a desetinnou část Celou část převedeme standardně dělením základem cílové soustavy a sběrem zbytků Desetinnou část převedeme násobením základem cílové soustavy a sběrem celých částí výsledků
Příklad: převádíme 32,75 do osmičkové soustavy 32 div 8 = 4 32 mod 8 = a0 = 0 4 div 8 = 0 4 mod 8 = a1 = 4 0,75 · 8 = 6,0 celá část (a−1 ) = 6, desetinná část = 0,0 Kontrola:
x = a1 z1 + a0 + a−1 z−1 = 4 · 81 + 0 + 6 · 8−1 = 32,75 32,7510 = 40,68 Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Převody mezi soustavami Převod z libovolné soustavy do desítkové soustavy
Převody mezi soustavami Převod z libovolné soustavy do desítkové – vyčíslením z-adického tvaru čísla ve tvaru řady x = an zn + … + a1 z + a0 Příklady: 3145 = 3 · 52 + 1 · 51 + 4 · 50 = 84 10012 = 1 · 23 + 0 · 22 + 0 · 21 + 1 · 20 = 9 F116 = 15 · 161 + 1 · 160 = 241 178 = 1 · 81 + 7 · 80 = 15 4117 = 4 · 72 + 1 · 71 + 1 · 70 = 204 12310 = 1 · 102 + 2 · 101 + 3 · 100 = 123 3,214 = 3 · 40 + 2 · 4−1 + 1 · 4−2 = 3,5625
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Převody mezi soustavami Převody mezi soustavami o různých základech
Převody mezi soustavami Převod mezi soustavami o základu 2n — pro použití v počítači mají hlavní význam — 1 číslice soustavy o základu 2n odpovídá n číslicím binární soustavy — 1 číslice osmičkové soustavy odpovídá 3 číslicím dvojkové soustavy, protože 8 = 23 — příklad: 68 = 1102
Převod mezi libovolnými soustavami — nejjednodušší způsob přes desítkovou soustavu — příklad: 1F16 = 3110 = 1115
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Aritmetické operace
Sčítání a odčítání Stejný princip ve všech soustavách, tedy i v desítkové Kdykoliv při sčítání v nějakém řádu součet dosáhne základu soustavy, nebo jej překročí, provedeme přenos do vyššího řádu Příklady: 4236 13416 5216 31256
427148 −170438 236518
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Číselné soustavy Aritmetické operace
Násobení Opět stejný princip ve všech soustavách Do vyššího řádu převádíme kdykoli po překročení základu soustavy Příklad: 324 · 214 324 130 4 13324 Zapisujeme, o kolik jsme překročili nejbližší násobek základu soustavy Pamatujeme si, kolikrát jsme překročili základ soustavy Dělení lze provést také, ale prakticky se nepoužívá Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla
Čísla v počítači Operační paměť počítače je rozdělena do adresovatelných jednotek velikosti slabiky (bajtu) Ve slabice číslujeme bity 0 a 7, přičemž bit 0 je bitem nejnižšího řádu, bit 7 je bitem nejvyššího řádu Možnosti uložení čísel v počítači — kladná čísla – přímo na určitém prostoru bez nutnosti úprav — záporná čísla – je potřeba uložit navíc informaci o znaménku, k tomu stačí jeden bit — reálná čísla – oblast paměti je rozdělena na tři části (znaménko, mantisa, exponent)
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Kladná čísla
Kladná čísla Uložení čísla v jedné slabice: Dekadicky
0 137 255
Binárně ve slabice
27
26
25
24
23
22
21
20
0
0
0
0
0
0
0
0
27
26
25
24
23
22
21
20
1
0
0
0
1
0
0
1
7
2
6
2
5
2
4
3
2
2
2
2
1
20
1
1
1
1
1
1
1
1
2
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Záporná čísla
Záporná čísla Bit nejvyššího řádu je obětován pro znaménko — 0xxxxxxx – kladné číslo — 1xxxxxxx – záporné číslo
Pro vyjádření hodnoty potom zůstává v 1 bajtu pouze 7 bitů, ve 2 bajtech pouze 15 bitů apod. Možnosti vyjádření záporného čísla v počítači — — — —
přímý kód inverzní kód doplňkový kód kód s posunutou nulou
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Záporná čísla
Přímý kód Nejvyšší bit je obětován pro znaménko, zbývající bity beze změn Příklad: vyjádření čísel 62 a −62 001111102 (62) 101111102 (−62) Problém: nelze sčítat kladná a záporná čísla 000000112 (3) 100001012 (−5) (−8) 100010002 Z výše uvedeného důvodu přímý kód nelze použít
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Záporná čísla
Inverzní kód Vyjdeme z přímého kódu, u všech významových bitů (tzn. kromě znaménkového) provedeme inverzi Příklad: vyjádření čísel 62 a −62 001111102 (62) 101111102 (−62, přímý kód) 110000012 (−62, inverzní kód) Problém: dvě různé nuly při porovnávání 000000002 (+0) 111111112 (−0) Z výše uvedeného důvodu inverzní kód nelze použít
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Záporná čísla
Doplňkový kód Vyjdeme z inverzního kódu, k číslu přičteme jedničku Příklad: vyjádření čísel 62 a −62 001111102 (62) 101111102 (−62, přímý kód) 110000012 (−62, inverzní kód) + 12 (−62, doplňkový kód) 110000102 Doplňkový kód řeší oba zmíněné problémy 000000002 000000112 (3) 111111112 111111012 (−5) + 12 (−2) 111111102 000000002 Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
(+0)
(−0)
Uložení dat v paměti počítače Čísla Záporná čísla
Doplňkový kód Sčítání ve dvojkovém doplňkovém kódu je stejné jako ve dvojkové soustavě Problém: je-li přenos do znaménkového bitu rozdílný od přenosu z něj, sčítání je neplatné
Příklad: sčítání čísel −67 a −67 101111012 101111012 011110102
Výpočetní technika I
(−67) (−67) (122)
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Záporná čísla
Kód s posunutou nulou (aditivní kód) Přičítá k číslu nějakou známou konstantu Například pro osmibitová čísla (28 = 256 různých čísel) — 00000000 ∼ −128 — 10000000 ∼ 0 — 11111111 ∼ 127 Příklad: vyjádření čísel 3 a −3 100000112 (3) 011110012 (−3) Nevýhoda: zápis kladného čísla se liší od bezznaménkové reprezentace čísel Operace sčítání nepotřebuje úpravy, ale pro operaci násobení je nutné od operandů odečíst známou konstantu Použití v praxi pro reprezentaci exponentu reálných čísel Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Záporná čísla
Záporná čísla v počítači Pokud je třeba ukládat záporná čísla, je nejvyšší bit obětován pro znaménko, jinak je součástí hodnoty čísla (hodnotový bit) Celočíselné datové typy v jazyce Pascal Název
byte
Délka Znam.
8 bitů
shortint 8 bitů word
16 bitů
integer 16 bitů longint 32 bitů
Rozsah
Hodnoty
ne
h0; 28 − 1i
0 až 255
ano
h−2 ; 2 − 1i
−128 až 127
ne
h0; 2 − 1i
0 až 65 535
ano
h−2 ; 2 − 1i
−32 768 až 32 767
ano
h−2 ; 2 − 1i cca −2 · 109 až 2 · 109
7
7
16
15
Výpočetní technika I
31
15 31
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Záporná čísla
Efektivní převod do doplňkového kódu Záporné číslo sečteme s číslem 2n , kde n je počet bitů cílového datového typu Výsledek převedeme do dvojkové soustavy stejným způsobem jako kladné číslo Příklad: zobrazení čísla −120 v proměnné typu shortint rozsah 28 = 256 hodnot 256 + (−120) = 256 − 120 = 136 136 = 100010002 Příklad: zobrazení čísla −120 v proměnné typu integer rozsah 216 = 65 536 hodnot 65 536 + (−120) = 65 536 − 120 = 65 416 65 416 = 11111111100010002 Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Záporná čísla
Znaménková čísla – shrnutí V jedné slabice (1 bajtu, 8 bitech) může být uloženo — číslo bez znaménka z intervalu 0 až 255 — číslo se znaménkem ve dvojkovém doplňkovém kódu z intervalu −128 až 127
Ve dvou slabikách (2 bajtech, 16 bitech) může být uloženo — číslo bez znaménka z intervalu 0 až 65 535 — číslo se znaménkem ve dvojkovém doplňkovém kódu z intervalu −32 768 až 32 767
O významu uložených bitů rozhoduje zvolený datový typ Příklad: hodnota 100010002 může reprezentovat — číslo 136 v proměnné typu byte — číslo −120 v proměnné typu shortint (136 − 28 ) Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla BCD číslice
Uložení číslic desítkové soustavy BCD číslice (Binary Coded Decimal) Číslice mezi 0 a 9 uložená v půlslabice (4 bity) V těchto bitech se nesmí vyskytovat kombinace 10–15 Zhuštěný tvar – v jedné slabice jsou uloženy dvě BCD číslice – číslice vyššího řádu je ve vyšší půlslabice Nezhuštěný tvar – v jedné slabice jedna číslice, horní půlslabika je prázdná Do BCD je číslo převedeno např. před zobrazením ve formě desítkového čísla u 7segmentových displejů Příklad: zobrazení čísla 35 Horní půlslabika Dolní půlslabika 0011 (= 3) 0101 (= 5) Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Reálná čísla
Reálná čísla Jsou v počítači uložena podle standardu IEEE 7541 Oblast paměti, ve které je uloženo reálné číslo, je rozdělena do tří částí — znaménko – nejvyšší bit (0 = kladné, 1 = záporné) — exponent – nese informaci o velikosti čísla — mantisa – uchovává číslice
Matematicky lze reálné číslo vyjádřit jako Znaménko Mantisa × 2Exponent 1
IEEE (Institute of Electrical and Electronics Engineers) je organizace elektroinženýrů a informatiků, která má přes 350 000 členů v cca 150 zemích světa. Definuje standardy v oblastech elektrotechniky a výpočetní techniky, spolu s ISO a ANSI patří k nejvýznamnějším standardizačním organizacím. Podrobněji viz http://www.ieee.org, příp. http://www.ieee.cz. Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Reálná čísla
Reálná čísla Single precision — 32bitová čísla — znaménko 1 bit, mantisa 23 bitů, exponent 8 bitů
Double precision — 64bitová čísla — znaménko 1 bit, mantisa 52 bitů, exponent 11 bitů
Extended precision — 80bitová čísla — znaménko 1 bit, mantisa 64 bitů, exponent 15 bitů
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Reálná čísla
Reálná čísla Mantisa — kromě případu čísla 0 vždy začíná (v binární podobě) jedničkou, která se neukládá
Exponent — určuje počet řádů, o které musíme posunout řádovou čárku — může být kladný (posun doprava) i záporný (doleva) — před uložením je k němu přičteno číslo bias 2n−1 − 1 (kód posunuté nuly – posouvá nulu zhruba doprostřed rozsahu), kde n je počet bitů exponentu
Detailnější informace — http://amber.feld.cvut.cz/psp/IEEE754.htm — http://www.root.cz/clanky/norma-ieee-754-a-pribuzniformaty-plovouci-radove-tecky/ Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Čísla Reálná čísla
Posunutá forma exponentu K exponentu se přičítá tzv. bias — single precision (8b exp.) – bias = 127 (28−1 − 1) — double precision (11b exp.) – bias = 1023 (211−1 − 1)
Důvod: snadnější porovnávání reálných čísel Příklad: zobrazení čísla −12,5 v single precision — 12,5 = 1100,12 = 1,10012 × 23 — mantisa: 1001 — exponent (8b): 3 + 127 = 130 = 10000010 — výsledné číslo:
1
10000010
1001000…00
↑
↑
↑
záporné
exponent
mantisa (23b)
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky
Uložení znaků v počítači Znaky v počítači — zobrazitelné znaky – všechny znaky, které slouží pro zápis textové informace (písmena, číslice, interpunkční znaménka, matematické symboly apod.) — řídicí znaky – slouží k ovládání přídavných zařízení (nebo programu)
Počítač není schopen zpracovávat jiné než číselné informace Aby bylo možné zpracovat textovou informaci, bylo nutné přiřadit jednotlivým znakům číselné ekvivalenty Znaky a symboly se uchovávají ve formě čísel podle převodní tabulky
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky
Převodní tabulky EBCDIC — Extended Binary Coded Decimal Interchange Code
ASCII (ISO 646) — American Standard Code for Information Interchange
UCS (ISO 10646) — Universal Character Set
UTF — UCS Transformation Format
Unicode
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky EBCDIC
EBCDIC Extended Binary Coded Decimal Interchange Code Prehistorický kód navržený IBM na konci 50. let 20. století Vychází z kódu používaného pro děrné štítky a BCD kódu využívaného v periferiích IBM Kódovací prostor 8 bitů – 256 znaků Rozložení kódu — řídicí znaky – #0–63, #255 — zobrazitelné znaky – #64–254
Nevýhoda: znaky anglické abecedy netvoří spojitou posloupnost, nelze použít regulární výraz
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky ASCII
ASCII American Standard Code for Information Interchange Kódovací prostor 8 bitů – 256 znaků Původně 7bitový kód + 1 paritní bit pro kontrolu Rozložení kódu — řídicí znaky – #0–31, #127 — zobrazitelné znaky – #32–126, #128–255
Kód má dvě části — základní část – #0–127 (původních 7 bitů) — rozšířená část – #128–255 (přidání 8. bitu)
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky ASCII
ASCII – základní část
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky ASCII
ASCII – rozšířená část Národní znaky – určeny pro zobrazení textů v jiných jazycích než angličtině
Žádný znakový kód nebyl původně navržen pro zobrazování národních znaků Základní kód ASCII neposkytuje dostatečný prostor pro uložení všech národních znaků Využití zbylých 128 pozic kódu ASCII (paritní bit) Způsob využití zcela nejednotný, existence různých znakových sad pro různé skupiny jazyky
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky ASCII
Varianty kódování českých národních znaků Kód bratrů Kamenických — KEYBCS2, CP895 — pro osobní počítače pod MS-DOS — využití sady CP437 s náhradou pozic 128–171 českými a slovenskými národními znaky
PC Latin 2 — IBM Latin 2, CP852 — pro osobní počítače pod MS-DOS — podpora středoevropských jazyků používajících latinku (čeština, slovenština, polština, rumunština, maďarština, srbochorvatština aj.)
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky ASCII
Varianty kódování českých národních znaků KOI8čs — Kod Obmena Informaciey — vyvinut v SSSR v rámci RVHP
ISO Latin 2 — ISO 8859-2 — podpora středoevropských a východoevropských jazyků psaných latinkou nebo latinskou transkripcí — použitelné i pro němčinu a finštinu
Windows-1250 — — — —
CP1250 pro operační systém Windows podpora středoevropských jazyků a němčiny velmi podobné kódu ISO 8859-2 (v češtině pouze 6 rozdílů) Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky Vícebajtová kódování
Vícebajtová kódování I 256 pozic kódu ASCII přestává stačit, hledají se nové možnosti ISO 10646 — UCS = Universal Character Set — univerzální prostor 4 B, tj. přes 4 miliardy znaků — zbytečně neúsporné řešení
Unicode — jeden znak ukládán vždy na 2 B — snaha o vytvoření jediné globální znakové sady — dolní polovina ASCII (#0–127) se ukládá pod stejnými hodnotami (00000000 xxxxxxxx) — číselný kód se pro přehlednost zapisuje v hexadecimální soustavě, např. „A“ = \u0041 — varianty Little Endian a Big Endian Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky Vícebajtová kódování
Unicode – Little Endian a Big Endian Little Endian — — — —
méně významový bajt leží na nižší adrese takto kódované soubory začínají znakem FF FE typické pro Windows příklad: znak „A“ = 41 00
Big Endian — — — —
méně významový bajt leží na vyšší adrese takto kódované soubory začínají znakem FE FF typické pro programovací jazyk Java příklad: znak „A“ = 00 41
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky Vícebajtová kódování
UTF – UCS Transformation Format Zmírňuje redundanci univerzálního kódu UCS Varianty UTF-8, UTF-16, UTF-32 UTF-8 — odstraňuje nevýhody Unicode (dvojnásobná délka souborů oproti ASCII, problémy s Little/Big Endianem) — znaky jsou kódovány na 1–3 B
Převod mezi Unicode a UTF-8� Unicode
Význam. bitů max.
Kódování UTF-8
0000–007F
7
0xxxxxxx
0080–07FF
11
110xxxxx 10xxxxx
0800–FFFF
16
1110xxxx 10xxxxxx 10xxxxxx
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky Vícebajtová kódování
BOM – Byte-Order Mark UTF signatura – označení pořadí bajtů v souboru Kódování
Obsah souboru
UTF-8
EF BB BF …
UTF-16 Little Endian
FF FE …
UTF-16 Big Endian
FE FF …
UTF-32 Little Endian
FF FE 00 00 …
UTF-32 Big Endian
00 00 FE FF …
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Znaky Vícebajtová kódování
Kódování národních znaků – shrnutí Příklad: textový soubor se slovem „Béďa“ ASCII / ISO 8859-2 — 42 E9 EF 61
4B
Unicode Little Endian — FF FE 42 00 E9 00 0F 01 61 00
10 B
Unicode Big Endian — FE FF 00 42 00 E9 01 0F 00 61
10 B
UTF-8 — EF BB BF 42 C3 A9 C4 8F 61 �
Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
9B
Uložení dat v paměti počítače Zvuky
Uložení zvukové informace Přímý záznam — digitalizace frekvencí a amplitud zvukových vln — výsledkem rozsáhlé soubory (např. WAV), často se používá komprese (MP3, WMA, AAC, Ogg Vorbis)
MIDI sekvence (Musical Instruments Digital Interface) — stručný digitální popis výšky jednotlivých tónů, jejich intenzity, délky a nejrůznějších doprovodných efektů — výstupní zvukové zařízení z těchto informací umí vytvářet zvuky — signál neobsahuje zvuk, ale pouze pokyny pro jeho vytvoření — nelze zaznamenat lidský hlas ani žádný hudební nástroj, který syntetizátor nedokáže zahrát — velmi malé soubory, převod WAV do MP3 nebo MIDI je náročný Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Obrazy
Uložení obrazové informace Rastrová grafika — obraz tvořen maticí bodů (pixelů), jejichž barva se skládá ze tří složek – červené, zelené a modré (RGB – Red, Green, Blue) — intenzitu barvy každé složky ukládáme v paměti zvlášť — dnes nejrozšířenější model: odstín každého bodu uložen jako 8bitové číslo (28 = 256 možností) — informace o barvě každého pixelu tedy zabere v paměti 3 B (3 složky × 1 B), celkem 2563 = 16 777 216 různých barev — model RGBA používá ještě čtvrtý bajt pro uložení informace o intenzitě průhlednosti pixelu (tzv. alfa kanál)
Vektorová grafika — obraz tvořen geometrickými objekty (body, přímky, křivky, …) — využití pro tvorbu ilustrací, diagramů, schémat apod. Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat
Uložení dat v paměti počítače Obrazy
Osnova příští přednášky Datové formáty — vyjádření hodnot datového typu — formátová specifikace — textový a binární formát
Souborové formáty — otevřený a uzavřený formát — rozpoznávání formátu — asociace a konverze
Komprimace a archivace — komprimační metody — archivace a zálohování — metody a postupy archivace Výpočetní technika I
Přednáška 2: Vnitřní reprezentace dat