Reprezentace dat. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

Podobne dokumenty
Chyby, podmíněnost a stabilita

1 Soustava lineárních rovnic

Edita Pelantová, katedra matematiky / 16

Kristýna Kuncová. Matematika B2 18/19

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška II. 6. říjen, / 26

MATEMATIKA 3 NUMERICKÉ METODY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Inverzní Z-transformace

Numerické metody 8. května FJFI ČVUT v Praze

Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.

Výzvy, které před matematiku staví

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

Matematika 2, vzorová písemka 1

LBF/ZUB22 Programové vybavení ordinace zubního lékaře. Mgr. Markéta Trnečková, Ph.D. Palacký University, Olomouc

Matematika 1 Jiˇr ı Fiˇser 24. z aˇr ı 2013 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 24. z aˇr ı / 52

Co nám prozradí derivace? 21. listopadu 2018

5. a 12. prosince 2018

Kapitola 4: Soustavy diferenciálních rovnic 1. řádu

Matematika (KMI/PMATE)

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

Martin Pergel. 26. února Martin Pergel

Ústav teorie informace a automatizace. Tato prezentace je k dispozici na:

Elementární funkce. Edita Pelantová. únor FJFI, ČVUT v Praze. katedra matematiky, FJFI, ČVUT v Praze

Cauchyova úloha pro obyčejnou diferenciální rovnici

MATEMATIKA 3. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

B0B99PRPA Procedurální programování

Logika V. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

podle přednášky doc. Eduarda Fuchse 16. prosince 2010

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Úvod 1 / 32

Úvodní informace. 18. února 2019

Algebra I Cvičení. Podstatná část příkladů je převzata od kolegů, jmenovitě Prof. Kučery, Doc. Poláka a Doc. Kunce, se

TGH01 - Algoritmizace

Kristýna Kuncová. Matematika B2

IJC Jazyk C. Petr Peringer peringer AT fit.vutbr.cz. (Verze: ) Božetěchova 2, Brno. Úvod ISO C libc C99 11 Debug C++ Link Opt...

Obsah Atributová tabulka Atributové dotazy. GIS1-2. cvičení. ČVUT v Praze, Fakulta stavební, katedra mapování a kartografie

B0B99PRPA Procedurální programování

Komunikacja człowiek-komputer

Odpřednesenou látku naleznete v kapitolách 2.1, 2.3 a 3.3 skript Diskrétní matematika. Jiří Velebil: A7B01LAG : Lineární kódy, část 1 1/20

x2 + 2x 15 x 2 + 4x ) f(x) = x 2 + 2x 15 x2 + x 12 3) f(x) = x 3 + 3x 2 10x. x 3 + 3x 2 10x x 2 + x 12 10) f(x) = log 2.

Quick sort, spojové struktury

Obsah. Limita posloupnosti a funkce. Petr Hasil. Limita posloupnosti. Pro a R definujeme: Je-li a < 0, pak a =, a ( ) =. vlastní body.

Statistika (KMI/PSTAT)

POLIURETANOWE SPRĘŻYNY NACISKOWE. POLYURETHANOVÉ TLAČNÉ PRUŽINY

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Numerické metody minimalizace

Pracownia Komputerowa wyk ad VII





Operace s funkcemi [MA1-18:P2.1] funkční hodnota... y = f(x) (x argument)

PODSTAWY INFORMATYKI. Informatyka? - definicja

Vybrané kapitoly z matematiky

Charakteristika jazyka C

Laplaceova transformace

Pojem množiny nedefinujeme, pouze připomínáme, že množina je. Nejprve shrneme pojmy a fakta, které znáte ze střední školy.

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Základní elektrotechnická terminologie,

Technologie Informatyczne Wykład IV/V

XXXIII Olimpiada Wiedzy Elektrycznej i Elektronicznej Krosno 2010







Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Pracownia komputerowa. Dariusz Wardecki, wyk. VIII

7. Aplikace derivace

Paradoxy geometrické pravděpodobnosti

Stavový popis Stabilita spojitých systémů (K611MSAP) Katedra aplikované matematiky Fakulta dopravní ČVUT. čtvrtek 20. dubna 2006

Architektura komputerów

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YDATA: Přednáška I. 5. říjen, / 37

prof. RNDr. Roman Kotecký DrSc., Dr. Rudolf Blažek, PhD Pravděpodobnost a statistika Katedra teoretické informatiky Fakulta informačních technologií

B0B99PRPA Procedurální programování. Stanislav Vítek

Představení projektu

Linea rnı (ne)za vislost

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Obsah: CLP Constraint Logic Programming. Úvod do umělé inteligence 6/12 1 / 17

TGH01 - Algoritmizace

Anna Kratochvílová Anna Kratochvílová (FJFI ČVUT) PDR ve zpracování obrazu / 17

Kombinatorika a komplexní aritmetika

Matematika prˇedna sˇka Lenka Prˇibylova 7. u nora 2007 c Lenka Prˇibylova, 200 7

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Obsah. Zobrazení na osmistěn. 1 Zobrazení sféry po částech - obecné vlastnosti 2 Zobrazení na pravidelný konvexní mnohostěn

Pracownia komputerowa. Dariusz Wardecki, wyk. IV

Matematická analýza II pro kombinované studium. Konzultace první a druhá. RNDr. Libuše Samková, Ph.D. pf.jcu.cz

GEM a soustavy lineárních rovnic, část 2

DFT. verze:

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Kombinatorika a grafy I

Pracownia komputerowa. Dariusz Wardecki, wyk. V

2018 Marcin Kukliński. Niesforne bity i bajty

Zadání: Vypočítejte hlavní momenty setrvačnosti a vykreslete elipsu setrvačnosti na zadaných

z předmětu Matematika 2: Funkce dvou a více

Martin Dlask (KSI FJFI) 3. března 2016

Lineární algebra - iterační metody

Popisná statistika. David Hampel. Přednáška Statistika 1 (BKMSTA1) 13. říjen 2012, Brno.

Transkrypt:

Reprezentace dat BI-PA1 Programování a Algoritmizace I. Ladislav Vagner Katedra teoretické informatiky Fakulta informačních technologíı ČVUT v Praze xvagner@fit.cvut.cz 9., 11. a 12. října 2017

Obsah Dvojková (binární) soustava. Kódování celých čísel (bez i se znaménkem). Kódování desetinných čísel. Kódování znaků a řetězců. L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 2/28

Kódování do bajtů a bitů 1 Kolik různých hodnot můžeme uložit do 10 bitů? L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 3/28

Kódování do bajtů a bitů 1 Kolik různých hodnot můžeme uložit do 10 bitů? 1024 = 2 10 2 Kolik bitů je potřeba k uložení celých čísel z uzavřeného intervalu 987654321 až 123456789? L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 3/28

Kódování do bajtů a bitů 1 Kolik různých hodnot můžeme uložit do 10 bitů? 1024 = 2 10 2 Kolik bitů je potřeba k uložení celých čísel z uzavřeného intervalu 987654321 až 123456789? log 2 (123456789 ( 987654321) + 1) 3 Kolik bitů je potřeba k uložení desetinných čísel z uzavřeného intervalu 123456 až 56 s přesností 0.001? L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 3/28

Kódování do bajtů a bitů 1 Kolik různých hodnot můžeme uložit do 10 bitů? 1024 = 2 10 2 Kolik bitů je potřeba k uložení celých čísel z uzavřeného intervalu 987654321 až 123456789? log 2 (123456789 ( 987654321) + 1) 3 Kolik bitů je potřeba k uložení desetinných čísel z uzavřeného intervalu 123456 až 56 s přesností 0.001? 56 ( 123456) log 2 ( + 1) 0.001 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 3/28

Dvojková soustava Převed te 7964 dec do dvojkové soustavy: 7964 (dec) =? (bin) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 4/28

Dvojková soustava Převed te 7964 dec do dvojkové soustavy: 7964 (dec) =? (bin) 7964 : 2 = 3982 +0 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 4/28

Dvojková soustava Převed te 7964 dec do dvojkové soustavy: 7964 (dec) =? (bin) 7964 : 2 = 3982 +0 3982 : 2 = 1991 +0 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 4/28

Dvojková soustava Převed te 7964 dec do dvojkové soustavy: 7964 (dec) =? (bin) 7964 : 2 = 3982 +0 3982 : 2 = 1991 +0 1991 : 2 = 995 +1 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 4/28

Dvojková soustava Převed te 7964 dec do dvojkové soustavy: 7964 (dec) =? (bin) 7964 : 2 = 3982 +0 3982 : 2 = 1991 +0 1991 : 2 = 995 +1 995 : 2 = 497 +1 497 : 2 = 248 +1 248 : 2 = 124 +0 124 : 2 = 62 +0 62 : 2 = 31 +0 31 : 2 = 15 +1 15 : 2 = 7 +1 7 : 2 = 3 +1 3 : 2 = 1 +1 1 : 2 = 0 +1 7964 dec = 1111100011100 bin = 1F1C hex L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 4/28

Dvojková soustava Převed te 110111010 bin = 1BA hex do desítkové soustavy: 110111010 (bin) = 1BA (hex) 0 * 1 = 0 1 * 2 = 2 0 * 4 = 0 1 * 8 = 8 1 * 16 = 16 1 * 32 = 32 0 * 64 = 0 1 * 128 = 128 1 * 256 = 256 sum 442 110111010 bin = 1BA hex = 442 dec L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 5/28

Dvojková soustava Převed te 11110110110010001010111101011 bin do šestnáctkové soustavy: L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 6/28

Dvojková soustava Převed te 11110110110010001010111101011 bin do šestnáctkové soustavy: 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 1010 = A 1011 = B 1100 = C 1101 = D 1110 = E 1111 = F 11110110110010001010111101011 (bin) 0001 1110 1101 1001 0001 0101 1110 1011 1 E D 9 1 5 E B 1ED915EB (hex) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 6/28

Dvojková soustava Převed te 168.5685 dec do dvojkové soustavy: L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 7/28

Dvojková soustava Převed te 168.5685 dec do dvojkové soustavy: 168 (dec) =? (bin) 168 : 2 = 84 +0 84 : 2 = 42 +0 42 : 2 = 21 +0 21 : 2 = 10 +1 10 : 2 = 5 +0 5 : 2 = 2 +1 2 : 2 = 1 +0 1 : 2 = 0 +1 168 dec = 10101000 bin L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 7/28

Dvojková soustava Převed te 168.5685 dec do dvojkové soustavy: 0.5685 (dec) =? (bin) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 8/28

Dvojková soustava Převed te 168.5685 dec do dvojkové soustavy: 0.5685 (dec) =? (bin) 0.5685 * 2 = 1.137 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 8/28

Dvojková soustava Převed te 168.5685 dec do dvojkové soustavy: 0.5685 (dec) =? (bin) 0.5685 * 2 = 1.137 0.137 * 2 = 0.274 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 8/28

Dvojková soustava Převed te 168.5685 dec do dvojkové soustavy: 0.5685 (dec) =? (bin) 0.5685 * 2 = 1.137 0.137 * 2 = 0.274 0.274 * 2 = 0.548 0.548 * 2 = 1.096 0.096 * 2 = 0.192 0.192 * 2 = 0.384 0.384 * 2 = 0.768 0.768 * 2 = 1.563 0.536 * 2 = 1.072...... 0.5685 dec 0.100100011 bin (0.568359375) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 8/28

Dvojková soustava Přepočet z desítkové do dvojkové soustavy: 168.5685 dec 10101000.100100011 bin Nemá ukončený desetinný (dvojkový) rozvoj, protože: 168.5685 = 168 + 1137 2000 a jmenovatel 2000 není mocnina 2. Pozor: 0.1 dec = 0.0001100110011... L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 9/28

Dvojková soustava Převed te 11010.01101 bin do desítkové soustavy: L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 10/28

Dvojková soustava Převed te 11010.01101 bin do desítkové soustavy: 1 * 0.03125 = 0.03125 0 * 0.0625 = 0 1 * 0.125 = 0.125 1 * 0.25 = 0.25 0 * 0.5 = 0 0 * 1 = 0 1 * 2 = 2 0 * 4 = 0 1 * 8 = 8 1 * 16 = 16 sum 26.40625 11010.01101 bin = 26.40625 dec L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 10/28

Celá čísla se znaménkem Kódování: doplňkový kód (dvojkový doplněk), inverzní kód, aditivní kód, přímý kód. Typické použití: doplňkový kód celá čísla, aditivní kód exponent desetinných čísel, přímý kód mantisa desetinných čísel. L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 11/28

Doplňkový kód Pro n bitovou reprezentaci je rozsah 2 n 1 až 2 n 1 1. Kladná čísla a 0 se ukládají beze změny. Záporné číslo x je uloženo jako hodnota 2 n + x (= x + 1). Tedy: kladná čísla a nula mají v nejvyšším bitu 0, záporná čísla mají v nejvyšším bitu 1. Snadné sčítání, odčítání a porovnávání. Obtížnější (ale zvládnutelné) násobení a dělení. L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 12/28

Přímý kód Pro n bitovou reprezentaci je rozsah 2 n 1 + 1 až 2 n 1 1. Nižsích n 1 bitů ukládá absolutní hodnotu čísla. Nejvyšší bit kóduje znaménko (0 kladné, 1 záporné). Existují dvě různé nuly: +0 a 0. Snadné násobení a dělení. Pracnější sčítání a odčítání. L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 13/28

Aditivní kód Čísla se ukládají zvětšená o konstantu A. Typicky A = 2 n 1 nebo A = 2 n 1 1. Nejvyšší bit určuje znaménko (0 záporné, 1 kladné). Snadné sčítání, odčítání a porovnávání. Nevhodný pro násobení a dělení. L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 14/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaká je reprezentace: 108 doplňkový kód přímý kód L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 15/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaká je reprezentace: doplňkový kód přímý kód 108 0110 1100 0110 1100-108 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 15/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaká je reprezentace: doplňkový kód přímý kód 108 0110 1100 0110 1100-108 1001 0100 1110 1100 36 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 15/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaká je reprezentace: doplňkový kód přímý kód 108 0110 1100 0110 1100-108 1001 0100 1110 1100 36 0010 0100 0010 0100-36 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 15/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaká je reprezentace: doplňkový kód přímý kód 108 0110 1100 0110 1100-108 1001 0100 1110 1100 36 0010 0100 0010 0100-36 1101 1100 1010 0100 0 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 15/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaká je reprezentace: doplňkový kód přímý kód 108 0110 1100 0110 1100-108 1001 0100 1110 1100 36 0010 0100 0010 0100-36 1101 1100 1010 0100 0 0000 0000 0000 0000 1000 0000 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 15/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaké číslo uchovává reprezentace: 0101 1010 doplňkový kód přímý kód L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 16/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaké číslo uchovává reprezentace: doplňkový kód přímý kód 0101 1010 90 90 1101 1110 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 16/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaké číslo uchovává reprezentace: doplňkový kód přímý kód 0101 1010 90 90 1101 1110-34 -94 1100 0001 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 16/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaké číslo uchovává reprezentace: doplňkový kód přímý kód 0101 1010 90 90 1101 1110-34 -94 1100 0001-63 -65 1010 1010 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 16/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaké číslo uchovává reprezentace: doplňkový kód přímý kód 0101 1010 90 90 1101 1110-34 -94 1100 0001-63 -65 1010 1010-86 -42 1111 1111 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 16/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaké číslo uchovává reprezentace: doplňkový kód přímý kód 0101 1010 90 90 1101 1110-34 -94 1100 0001-63 -65 1010 1010-86 -42 1111 1111-1 -127 1000 0000 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 16/28

Čísla se znaménkem Mějme čísla kódovaná v n = 8 bitech. Jaké číslo uchovává reprezentace: doplňkový kód přímý kód 0101 1010 90 90 1101 1110-34 -94 1100 0001-63 -65 1010 1010-86 -42 1111 1111-1 -127 1000 0000-128 -0 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 16/28

Desetinná čísla základ b, typicky b = 2, mantisa m fixní velikosti, 1 m < b, exponent e fixní velikosti, znaménko s (1 bit). x = ( 1) s m b e = ( 1) s m 2 e Doporučení IEEE 754: velikost mantisa exponent rozsah 4 B 23 + 1b 8b 1.18 10 38.. 3.4 10 38 8 B 52 + 1b 11b 2.23 10 308.. 1.8 10 308 10 B 64 15b 3.36 10 4932.. 1.19 10 4932 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 17/28

Desetinná čísla Převod čísla 123.53125 do IEEE reprezentace (32 bitů): L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 18/28

Desetinná čísla Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Převedeme celou část: 123 10 = 1111011 2 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 18/28

Desetinná čísla Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Převedeme celou část: 123 10 = 1111011 2 Převedeme desetinnou část: 0.53125 10 = 0.10001 2 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 18/28

Desetinná čísla Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Převedeme celou část: 123 10 = 1111011 2 Převedeme desetinnou část: 0.53125 10 = 0.10001 2 Určíme mantisu: m = 1111011.10001 2 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 18/28

Desetinná čísla Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Převedeme celou část: 123 10 = 1111011 2 Převedeme desetinnou část: 0.53125 10 = 0.10001 2 Určíme mantisu: m = 1111011.10001 2 Normalizace mantisy: m = 1.11101110001 2 2 6 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 18/28

Desetinná čísla (pokračování) Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Normalizace mantisy: m = 1.11101110001 2 2 6 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 19/28

Desetinná čísla (pokračování) Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Normalizace mantisy: m = 1.11101110001 2 2 6 Odstranění skryté jedničky, doplnění na 23 bitů: 11101110001000000000000 2 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 19/28

Desetinná čísla (pokračování) Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Normalizace mantisy: m = 1.11101110001 2 2 6 Odstranění skryté jedničky, doplnění na 23 bitů: 11101110001000000000000 2 Určení exponentu (v aditivním kódu, 8 bitů): (6 + 127) 10 = 10000101 2 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 19/28

Desetinná čísla (pokračování) Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Normalizace mantisy: m = 1.11101110001 2 2 6 Odstranění skryté jedničky, doplnění na 23 bitů: 11101110001000000000000 2 Určení exponentu (v aditivním kódu, 8 bitů): (6 + 127) 10 = 10000101 2 Kladné číslo znaménko s = 0 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 19/28

Desetinná čísla (pokračování) Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Výsledek: znaménko exponent mantisa L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 20/28

Desetinná čísla (pokračování) Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Výsledek: znaménko exponent mantisa = 0 10000101 11101110001000000000000 (bin) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 20/28

Desetinná čísla (pokračování) Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Výsledek: znaménko exponent mantisa = 0 10000101 11101110001000000000000 (bin) = 01000010 11110111 00010000 00000000 (bin) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 20/28

Desetinná čísla (pokračování) Převod čísla 123.53125 do IEEE reprezentace (32 bitů): Výsledek: znaménko exponent mantisa = 0 10000101 11101110001000000000000 (bin) = 01000010 11110111 00010000 00000000 (bin) = 42 f7 10 00 (hex) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 20/28

Desetinná čísla - aritmetické operace Jak se sečte 20.5 + 14.5 (IEEE, 32 bit): L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 21/28

Desetinná čísla - aritmetické operace Jak se sečte 20.5 + 14.5 (IEEE, 32 bit): 20.5 (dec) = 10100.1 (bin) = 1.01001000000000000000000 * 2^4 14.5 (dec) = 1110.1 (bin) = 1.11010000000000000000000 * 2^3 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 21/28

Desetinná čísla - aritmetické operace Jak se sečte 20.5 + 14.5 (IEEE, 32 bit): 20.5 (dec) = 10100.1 (bin) = 1.01001000000000000000000 * 2^4 14.5 (dec) = 1110.1 (bin) = 1.11010000000000000000000 * 2^3 Převod na společný exponent (zde 4): 14.5 (dec) = 1110.1 (bin) = 0.11101000000000000000000 * 2^4 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 21/28

Desetinná čísla - aritmetické operace Jak se sečte 20.5 + 14.5 (IEEE, 32 bit): 20.5 (dec) = 10100.1 (bin) = 1.01001000000000000000000 * 2^4 14.5 (dec) = 1110.1 (bin) = 1.11010000000000000000000 * 2^3 Převod na společný exponent (zde 4): 14.5 (dec) = 1110.1 (bin) = 0.11101000000000000000000 * 2^4 Součet mantis a případná normalizace: 1.01001000000000000000000 * 2^4 + 0.11101000000000000000000 * 2^4 =10.00110000000000000000000 * 2^4 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 21/28

Desetinná čísla - aritmetické operace Jak se sečte 20.5 + 14.5 (IEEE, 32 bit): 20.5 (dec) = 10100.1 (bin) = 1.01001000000000000000000 * 2^4 14.5 (dec) = 1110.1 (bin) = 1.11010000000000000000000 * 2^3 Převod na společný exponent (zde 4): 14.5 (dec) = 1110.1 (bin) = 0.11101000000000000000000 * 2^4 Součet mantis a případná normalizace: 1.01001000000000000000000 * 2^4 + 0.11101000000000000000000 * 2^4 =10.00110000000000000000000 * 2^4 = 1.00011000000000000000000 * 2^5 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 21/28

Desetinná čísla - aritmetické operace Jak se sečte 20.5 + 14.5 (IEEE, 32 bit): 20.5 (dec) = 10100.1 (bin) = 1.01001000000000000000000 * 2^4 14.5 (dec) = 1110.1 (bin) = 1.11010000000000000000000 * 2^3 Převod na společný exponent (zde 4): 14.5 (dec) = 1110.1 (bin) = 0.11101000000000000000000 * 2^4 Součet mantis a případná normalizace: 1.01001000000000000000000 * 2^4 + 0.11101000000000000000000 * 2^4 =10.00110000000000000000000 * 2^4 = 1.00011000000000000000000 * 2^5 = 100011.0 (bin) = 35 (dec) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 21/28

Desetinná čísla - aritmetické operace Jak se sečte 20000000 + 9 (IEEE, 32 bit): L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 22/28

Desetinná čísla - aritmetické operace Jak se sečte 20000000 + 9 (IEEE, 32 bit): 20000000 (dec) = 1001100010010110100000000.0 (bin) = 1.00110001001011010000000 * 2^24 9 (dec) = 1001.0 (bin) = 1.00100000000000000000000 * 2^3 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 22/28

Desetinná čísla - aritmetické operace Jak se sečte 20000000 + 9 (IEEE, 32 bit): 20000000 (dec) = 1001100010010110100000000.0 (bin) = 1.00110001001011010000000 * 2^24 9 (dec) = 1001.0 (bin) = 1.00100000000000000000000 * 2^3 Převod na společný exponent (zde 24): 9 (dec) = 1001.0 (bin) = 0.000000000000000000001001 * 2^24 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 22/28

Desetinná čísla - aritmetické operace Jak se sečte 20000000 + 9 (IEEE, 32 bit): 20000000 (dec) = 1001100010010110100000000.0 (bin) = 1.00110001001011010000000 * 2^24 9 (dec) = 1001.0 (bin) = 1.00100000000000000000000 * 2^3 Převod na společný exponent (zde 24): 9 (dec) = 1001.0 (bin) = 0.00000000000000000000100 * 2^24 Společný exponent zde vede ke ztrátě přesnosti L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 22/28

Desetinná čísla - aritmetické operace Jak se sečte 20000000 + 9 (IEEE, 32 bit): 20000000 (dec) = 1001100010010110100000000.0 (bin) = 1.00110001001011010000000 * 2^24 9 (dec) = 1001.0 (bin) = 1.00100000000000000000000 * 2^3 Převod na společný exponent (zde 24): 9 (dec) = 1001.0 (bin) = 0.00000000000000000000100 * 2^24 Společný exponent zde vede ke ztrátě přesnosti Součet mantis a případná normalizace: 1.00110001001011010000000 * 2^24 + 0.00000000000000000000100 * 2^24 = 1.00110001001011010000100 * 2^24 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 22/28

Desetinná čísla - aritmetické operace Jak se sečte 20000000 + 9 (IEEE, 32 bit): 20000000 (dec) = 1001100010010110100000000.0 (bin) = 1.00110001001011010000000 * 2^24 9 (dec) = 1001.0 (bin) = 1.00100000000000000000000 * 2^3 Převod na společný exponent (zde 24): 9 (dec) = 1001.0 (bin) = 0.00000000000000000000100 * 2^24 Společný exponent zde vede ke ztrátě přesnosti Součet mantis a případná normalizace: 1.00110001001011010000000 * 2^24 + 0.00000000000000000000100 * 2^24 = 1.00110001001011010000100 * 2^24 = 20000008 (dec) L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 22/28

Desetinná čísla Jak se určí počet platných cifer? L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 23/28

Desetinná čísla Jak se určí počet platných cifer? x = mantisa bitů log 2 10 Jak se určí rozsah? L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 23/28

Desetinná čísla Jak se určí počet platných cifer? x = mantisa bitů log 2 10 Jak se určí rozsah? x = 2 2exponent bitů - 1 Nejmenší a největší hodnoty exponentu jsou rezervované pro speciální hodnoty (inf, NaN, 0), skutečný rozsah je tedy poloviční. Doporučení IEEE 754: velikost mantisa platné des. cifry 4 B 23 + skrytá 1 7.22 8 B 52 + skrytá 1 15.95 10 B 64 19.26 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 23/28

Znaky, řetězce Znaky kódované čísly: každý znak má přiřazené nějaké číslo, přiřazení určené tabulkou (norma, dohoda). ASCII 128 pozic, znaky US abacedy, číslice, speciální znaky, chybí znaky používané v jiných jazycích (slovanské, řecké, azbuka, čínské,... ). Rozšířená ASCII: Prvních 128 pozic = ASCII, nad 128 znaky národních abeced, různé tabulky pro různé státy (iso 8859-2, cp1250,... ). UNICODE: všechny (většina) používaných znaků, velikost tabulky = 2 20 + 2 16 pozic, prvních 128 pozic = ASCII. L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 24/28

Znaky, řetězce Kódování znaků v paměti počítače: ASCII (rozšířená ASCII): 1 bajt = znak. UNICODE: 2 bajty = znak (UCS-2), 4 bajty = znak (UCS-4 = UTF-32), 2 nebo 4 bajty = znak (UTF-16), 1-4 bajty = znak (UTF-8). L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 25/28

Znaky, řetězce Příklad kódování řetězce Žlutý kůň: cp1250: 8e 6c 75 74 fd 20 6b f9 f2 iso-8859-2: ae 6c 75 74 fd 20 6b f9 f2 UTF-32: 7d 01 00 00 6c 00 00 00 75 00 00 00 74 00 00 00 fd 00 00 00 20 00 00 00 6b 00 00 00 6f 01 00 00 48 01 00 00 UTF-16: 7d 01 6c 00 75 00 74 00 fd 00 20 00 6b 00 6f 01 48 01 UTF-8: c5 bd 6c 75 74 c3 bd 20 6b c5 af c5 88 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 26/28

Znaky, řetězce Co znamená následující pamět ový obsah (bajty): c4 8c 56 55 54 2e 2e 2e L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 27/28

Znaky, řetězce Co znamená následující pamět ový obsah (bajty): c4 8c 56 55 54 2e 2e 2e UTF-8 řetězec: ČVUT... L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 27/28

Znaky, řetězce Co znamená následující pamět ový obsah (bajty): c4 8c 56 55 54 2e 2e 2e UTF-8 řetězec: ČVUT... Windows-1250 řetězec: ÄŚVUT... L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 27/28

Znaky, řetězce Co znamená následující pamět ový obsah (bajty): c4 8c 56 55 54 2e 2e 2e UTF-8 řetězec: ČVUT... Windows-1250 řetězec: ÄŚVUT... Desetinné číslo, 64b, big-endian: -1.6727353762607028764672e22 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 27/28

Znaky, řetězce Co znamená následující pamět ový obsah (bajty): c4 8c 56 55 54 2e 2e 2e UTF-8 řetězec: ČVUT... Windows-1250 řetězec: ÄŚVUT... Desetinné číslo, 64b, big-endian: -1.6727353762607028764672e22 Desetinné číslo, 64b, little-endian: 3.03434186412706258304835428833e-86 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 27/28

Znaky, řetězce Co znamená následující pamět ový obsah (bajty): c4 8c 56 55 54 2e 2e 2e UTF-8 řetězec: ČVUT... Windows-1250 řetězec: ÄŚVUT... Desetinné číslo, 64b, big-endian: -1.6727353762607028764672e22 Desetinné číslo, 64b, little-endian: 3.03434186412706258304835428833e-86 Celé číslo bez znaménka, 64b, little-endian: 3327648114417241284 L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 27/28

Znaky, řetězce Co znamená následující pamět ový obsah (bajty): c4 8c 56 55 54 2e 2e 2e UTF-8 řetězec: ČVUT... Windows-1250 řetězec: ÄŚVUT... Desetinné číslo, 64b, big-endian: -1.6727353762607028764672e22 Desetinné číslo, 64b, little-endian: 3.03434186412706258304835428833e-86 Celé číslo bez znaménka, 64b, little-endian: 3327648114417241284... L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 27/28

Dotazy Dotazy... Děkuji za pozornost. L. Vagner, ČVUT FIT Reprezentace dat, BI-PA1 28/28