Algoritmy a datové struktury

Podobné dokumenty
3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Čísla a číselné soustavy.

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Informatika Datové formáty

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Tato tematika je zpracována v Záznamy přednášek: str materiál: PrikladyZobrazeniCisel.pdf

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Architektury počítačů

Mikroprocesorová technika (BMPT)

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

Principy počítačů I Reprezentace dat

Algoritmizace a programování

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Datové typy a jejich reprezentace v počítači.

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Číselné soustavy a převody mezi nimi

Principy počítačů. Prof. RNDr. Peter Mikulecký, PhD.

v aritmetické jednotce počíta

Úloha 1 Spojte binární obrazy na obrázku s hodnotami, které reprezentují.

ADT/ADS = abstraktní datové typy / struktury

C2115 Praktický úvod do superpočítání

Číselné soustavy. Binární číselná soustava

7. Datové typy v Javě

Fz =a z + a z +...+a z +a z =

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Digitalizace dat metodika

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Úvod do informačních technologií

PB002 Základy informačních technologií

Vnitřní reprezentace dat

5 Přehled operátorů, příkazy, přetypování

Základní jednotky používané ve výpočetní technice

Aritmetické operace a obvody pro jejich realizaci

Elementární datové typy

REPREZENTACE DAT. Principy počítačů I. Literatura. Literály. Typy dat. Literály. Čísla Instrukce. Znaky. Logické hodnoty

Zobrazení dat Cíl kapitoly:

35POS 2010 Počítačové systémy 1 Úvod, jazyk C Doc. Ing. Bayer Jiří, Csc. Ing. Pavel Píša

Číslo materiálu. Datum tvorby Srpen 2012

Struktura a architektura počítačů (BI-SAP) 5

ČÍSELNÉ SOUSTAVY PŘEVODY

Čísla v počítači Výpočetní technika I

Ing. Igor Kopetschke TUL, NTI

4 Datové struktury. Datové struktury. Zobrazení dat v počítači

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

2 Ukládání dat do paměti počítače

Sada 1 - Základy programování

Aritmetické operácie v rôznych číselných sústavách. Ľudmila MACEKOVÁ, KEMT-FEI-TUKE, sep. 2017

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Struktura a architektura počítačů (BI-SAP) 6

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Aplikovaná numerická matematika

Kódováni dat. Kódy používané pro strojové operace

E. Pohyblivářádováčárka

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

Číselné soustavy. Prvopočátky. Starověký Egypt a Mezopotámie. Již staří Římané

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Přednáška 2: Čísla v počítači. Práce s počítačem. Číselné soustavy. Převody mezi soustavami. Aritmetické operace. Uložení čísel v paměti počítače

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky

UMÍ POČÍTAČE POČÍTAT?

Datové typy pro reálná čísla

MQL4 COURSE. By Coders guru -3 DATA TYPES. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět:

Algoritmizace a programování

Úvod do informačních technologií

Digitální signály a kódy

Racionální čísla, operátory, výrazy, knihovní funkce

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Informační a komunikační technologie

Čísla, reprezentace, zjednodušené výpočty

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Datové typy pro reálná čísla

Úvod do programovacích jazyků (Java)

Pokročilá algoritmizace amortizovaná složitost, Fibonacciho halda, počítačová aritmetika

Exponent. Integer 4 bajty až Double Integer 8 bajtů až

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Floating Point. Jak je reprezentovaný a proč někdy nefunguje. 2. června 2013

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

Pohyblivářádováčárka

Čísla, reprezentace, zjednodušené výpočty

Y36SAP - aritmetika. Osnova

Kódování a Šifrování. Iveta Nastoupilová

KALKULÁTORY EXP LOCAL SIN

1.5.1 Číselné soustavy

Racionální čísla, operátory, výrazy, knihovní funkce

Obsah 10. přednášky: Jak bude probíhat zkouška?! Podrobné informace:

Mocniny. Nyní si ukážeme jak je to s umocňováním záporných čísel.

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Transkript:

Algoritmy a datové struktury Data a datové typy 1 / 28

Obsah přednášky Základní datové typy Celá čísla Reálná čísla Znaky 2 / 28

Organizace dat Výběr vhodné datvé struktry různá paměťová náročnost různá časová náročnost Datová struktura data operace nad daty 3 / 28

Datové typy Data v počítači pomocí bitů Datové typy dávají bitům konkrétní význam Většina jazyků standardní sada typů celá čísla (integer) čísla s pohyblivou řádovou čárkou (floating point number) znaky (char) Pro datové typy jsou definovány operace výsledek operace nad konkrétním typem je konkrétního typu např. desetinné číslo / desetinné číslo = desetinné číslo 4 / 28

Datové typy Data v počítači pomocí bitů Datové typy dávají bitům konkrétní význam Většina jazyků standardní sada typů celá čísla (integer) čísla s pohyblivou řádovou čárkou (floating point number) znaky (char) Pro datové typy jsou definovány operace výsledek operace nad konkrétním typem je konkrétního typu např. desetinné číslo / desetinné číslo = desetinné číslo celé číslo / celé číslo = celé číslo 4 / 28

Datové typy Data v počítači pomocí bitů Datové typy dávají bitům konkrétní význam Většina jazyků standardní sada typů celá čísla (integer) čísla s pohyblivou řádovou čárkou (floating point number) znaky (char) Pro datové typy jsou definovány operace výsledek operace nad konkrétním typem je konkrétního typu např. desetinné číslo / desetinné číslo = desetinné číslo celé číslo / celé číslo = celé číslo zkuste si: System.out.println(5.0/2.0); 4 / 28

Datové typy Data v počítači pomocí bitů Datové typy dávají bitům konkrétní význam Většina jazyků standardní sada typů celá čísla (integer) čísla s pohyblivou řádovou čárkou (floating point number) znaky (char) Pro datové typy jsou definovány operace výsledek operace nad konkrétním typem je konkrétního typu např. desetinné číslo / desetinné číslo = desetinné číslo celé číslo / celé číslo = celé číslo zkuste si: System.out.println(5.0/2.0); System.out.println(5.0/2); 4 / 28

Datové typy Data v počítači pomocí bitů Datové typy dávají bitům konkrétní význam Většina jazyků standardní sada typů celá čísla (integer) čísla s pohyblivou řádovou čárkou (floating point number) znaky (char) Pro datové typy jsou definovány operace výsledek operace nad konkrétním typem je konkrétního typu např. desetinné číslo / desetinné číslo = desetinné číslo celé číslo / celé číslo = celé číslo zkuste si: System.out.println(5.0/2.0); System.out.println(5.0/2); System.out.println(5/2); 4 / 28

Datové typy Pro reprezentaci konkrétního datového typu pevný počet bitů závisí naplatformě nepsaný standard Typy 5 / 28

Datové typy Pro reprezentaci konkrétního datového typu pevný počet bitů závisí naplatformě nepsaný standard Typy celočíslené byte 8 bitů short 16 bitů int 32 bitů long 64 bitů 5 / 28

Datové typy Pro reprezentaci konkrétního datového typu pevný počet bitů závisí naplatformě nepsaný standard Typy celočíslené byte 8 bitů short 16 bitů int 32 bitů long 64 bitů pohyblivá čárka norma IEEE 754 float 32 bitů double 64 bitů 5 / 28

Datové typy Pro reprezentaci konkrétního datového typu pevný počet bitů závisí naplatformě nepsaný standard Typy celočíslené byte 8 bitů short 16 bitů int 32 bitů long 64 bitů pohyblivá čárka norma IEEE 754 float 32 bitů double 64 bitů znaky ne už tak standardní 8 bitů problém s národními znaky 16 bitů unicode 5 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 37 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 37 Zkuste si 1101 b 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 37 Zkuste si 1101 b = 11 d 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 37 Zkuste si 1101 b = 13 d 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 37 Zkuste si 1101 b = 13 d 1100b 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 37 Zkuste si 1101 b = 13 d 1100b = 12 d 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 37 Zkuste si 1101 b = 13 d 1100b = 12 d 1011b 6 / 28

Dvojková soustava Výsledné číslo: c = a n 2 n + a n 1 2 n 1 + + a 0 2 0 Příklad: 100101 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 32 + 4 + 1 37 Zkuste si 1101 b = 13 d 1100b = 12 d 1011b = 11 d 6 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 0 b 10/2 = 5(0) 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 10 b 10/2 = 5(0) 5/2 = 2(1) 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 010 b 10/2 = 5(0) 5/2 = 2(1) 2/2 = 1(0) 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 1010 b 10/2 = 5(0) 5/2 = 2(1) 2/2 = 1(0) 1/2 = 0(1) 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 1010 b 10/2 = 5(0) 5/2 = 2(1) 2/2 = 1(0) 1/2 = 0(1) Zkuste si 15d 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 1010 b 10/2 = 5(0) 5/2 = 2(1) 2/2 = 1(0) 1/2 = 0(1) Zkuste si 15d = 1111 b 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 1010 b 10/2 = 5(0) 5/2 = 2(1) 2/2 = 1(0) 1/2 = 0(1) Zkuste si 15d = 1111 b 16d 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 1010 b 10/2 = 5(0) 5/2 = 2(1) 2/2 = 1(0) 1/2 = 0(1) Zkuste si 15d = 1111 b 16d = 10000 b 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 1010 b 10/2 = 5(0) 5/2 = 2(1) 2/2 = 1(0) 1/2 = 0(1) Zkuste si 15d = 1111 b 16d = 10000 b 17 d 7 / 28

Převod do dvojkové soustavy Postupně dělit číslo číslem dvě pokud je zbytek 1, zapsat 1 pokud je zbytek 0, zapsat 0 Příklad: číslo 10 d = 1010 b 10/2 = 5(0) 5/2 = 2(1) 2/2 = 1(0) 1/2 = 0(1) Zkuste si 15d = 1111 b 16d = 10000 b 17 d = 10001 b 7 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d = 00000000 b 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d = 00000000 b = 00 h 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d = 00000000 b = 00 h 128d 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d = 00000000 b = 00 h 128d = 10000000 b 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d = 00000000 b = 00 h 128d = 10000000 b = 80 h 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d = 00000000 b = 00 h 128d = 10000000 b = 80 h 255 d 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d = 00000000 b = 00 h 128d = 10000000 b = 80 h 255 d = 11111111 b 8 / 28

Převod do hexadecimální soustavy Z dvojkové soustavy seskupit bity do čtveřic každá čtveřice představuje jednu hexadecimální cifru Příklad 5d = 0000 0101 b = 05 h 15d = 0000 1111 b = 0F h 16 d = 0001 0000 b = 10 h Zkuste si 0d = 00000000 b = 00 h 128d = 10000000 b = 80 h 255 d = 11111111 b = FF h 8 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 = 4G = 4 294 967 296 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 = 4G = 4 294 967 296 na 64 bitech 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 = 4G = 4 294 967 296 na 64 bitech = 2 60 2 4 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 = 4G = 4 294 967 296 na 64 bitech = 2 60 2 4 = 6E = 18 446 744 073 709 551 616 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 = 4G = 4 294 967 296 na 64 bitech = 2 60 2 4 = 6E = 18 446 744 073 709 551 616 Jaký je tedy rozsah? 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 = 4G = 4 294 967 296 na 64 bitech = 2 60 2 4 = 6E = 18 446 744 073 709 551 616 Jaký je tedy rozsah? pro 8 bitů 0..255 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 = 4G = 4 294 967 296 na 64 bitech = 2 60 2 4 = 6E = 18 446 744 073 709 551 616 Jaký je tedy rozsah? pro 8 bitů 0..255 pro 16 bitů 0..65355 9 / 28

Celá kladná čísla Jaké tedy mohou být rozsahy celých kladných čísel na 8 bitech = 2 8 = 256 na 16 bitech = 2 10 2 6 = 1024 64 = 64k = 65 536 na 32 bitech = 2 30 2 2 = 4G = 4 294 967 296 na 64 bitech = 2 60 2 4 = 6E = 18 446 744 073 709 551 616 Jaký je tedy rozsah? pro 8 bitů 0..255 pro 16 bitů 0..65355... 9 / 28

Celá čísla Co se zápornými čísly? přímý kód kód s posunutou nulou doplňkový kód inverzní kód Rozsah se zřejmě zmenší na polovinu 10 / 28

Přímý kód Nejvyšší bit (první z leva) určuje znaménko Zbytek čísla je normální dvojkové číslo Nula lze teoreticky zapsat dvěma způsoby (+0, -0) Příklad 5 d = 00000101 b 5 d = 10000101 b Rozsah 1 1111111b = 127 d 0 1111111 b = 127 d 11 / 28

Kód s posunutou nulou K výslednému číslu se přičte hodnota Většinou polovina rozsahu Příklad 0d = 0 + 127 = 01111111 b 5d = 5 + 127 = 10000100 b 5 d = 5 + 127 = 01111010 b Rozsah 11111111b = 255 127 = 128 d 00000000b = 0 127 = 127 d 12 / 28

Inverzní kód Kladná čísla beze změny Nekladná doplněk do nejvyššího čísla lze vyrobit bitovou inverzí Příklad 0d = 00000000 b 5d = 00000101 b 0d = 11111111 b 5d = 11111010 b Rozsah 127d = 10000000 b 127d = 01111111 b 13 / 28

Doplňkový kód Kladná čísla beze změny Nekladná doplněk do nejvyššího čísla +1 lze vyrobit bitovou inverzí a přičíst 1 Příklad 0d = 00000000 b 5d = 00000101 b 5d = 11111011 b Rozsah 128d = 10000000 b 127d = 01111111 b 14 / 28

Zkuste si Pomocí funkce DataOutputStream.writeByte zapsat do souboru několik různých hodnot Pomocí hexadecimálního prohlížeče si čísla prohlédnout http://www.simdesign.nl/binview.html Zjistěte maximální číslo minimální číslo jak lze zapsat 0 jaké kódování se používá 15 / 28

Semilogaritmický tvar Vyjádření čísla: X = m z e m mantisa; přesnost čísla z základ exponentu; v počítači je 2 e exponent; rozsah čísla Příklad 3.1415 = 0.31415 10 1 = 314.15 10 2 0.0004 = 0.4 10 3... 16 / 28

Semilogaritmický tvar Normalizovaný tvar mantisy mantisa musí být 1 m < z odstaňuje nejednoznačnosti v zápisu Vyjádřitelná čísla např. mantisa 3 řády a znaménko exponent 2 řády a znaménko základ 10-9.99e2-9.99e-2 0 9.99e-2 9.99e2 17 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0. b 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.1 0.6 2 = 1.2(1) b 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.10 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) b 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.100 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) b 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.1001 b 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) 0.8 2 = 1.6(1) 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.10011 b 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) 0.8 2 = 1.6(1) 0.6 2 = 1.2(1) 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.10011 b 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) 0.8 2 = 1.6(1) 0.6 2 = 1.2(1) Zkuste si 0.5 d 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.10011 b 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) 0.8 2 = 1.6(1) 0.6 2 = 1.2(1) Zkuste si 0.5 d = 0.1 b 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.10011 b 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) 0.8 2 = 1.6(1) 0.6 2 = 1.2(1) Zkuste si 0.5 d = 0.1 b 0.625 d 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.10011 b 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) 0.8 2 = 1.6(1) 0.6 2 = 1.2(1) Zkuste si 0.5 d = 0.1 b 0.625 d = 0.101 b 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.10011 b 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) 0.8 2 = 1.6(1) 0.6 2 = 1.2(1) Zkuste si 0.5 d = 0.1 b 0.625 d = 0.101 b 1.75d 18 / 28

Jak to je s desetinným binárním číslem? Podobně jako s celým jednotlivé řády i označují násobky 2 i Převod číslo postupně násobíme 2 když je výsledek menší než 1, napíšeme 0 jinak odečteme 1 a napíšeme 1 Příklad: číslo 0.6 d = 0.10011 b 0.6 2 = 1.2(1) 0.2 2 = 0.4(0) 0.4 2 = 0.8(0) 0.8 2 = 1.6(1) 0.6 2 = 1.2(1) Zkuste si 0.5 d = 0.1 b 0.625 d = 0.101 b 1.75d = 1.11 b 18 / 28

Počítačový zápis IEEE standard základ 2 exponent kód s posunutou nulou mantisa přímý kód (znaménko oddělené) jednoduchá přesnost 32 bitů (8 bitů exponent, 23 bitů mantisa) dvojitá přesnost 64 bitů (11 bitů exponent, 52 bitů mantisa) Normování mantisy první nenulový bit před desetinnou tečku (nepíše se) příklad: 0.0101.01 +/- exponent mantisa 31 30 23 22 0 +/- exponent mantisa 63 62 52 51 0 19 / 28

Rozsah reálných čísel Rozsah v jednoduché přesnosti (float) ±10 45 až ±10 3 9 s přesností na 6 míst Rozsah v dvojité přesnosti (double) s přesností na 15 ±10 323 až ±10 3 08 20 / 28

Zkuste si Pomocí funkce DataOutputStream.writeFloat zapsat do souboru několik různých hodnot Pomocí hexadecimálního prohlížeče si čísla prohlédnout http://www.simdesign.nl/binview.html Zjistěte maximální číslo minimální číslo jak lze zapsat 0 Podívejte se na http://www.h-schmidt.net/floatapplet/ieee754.html 21 / 28

Kódování znaků 8 bitů Při použití 1 byte jsou jednotlivé znaky uloženy v tabulce Nejznámější norma ASCII (American Standard Code for International Interchange) prvních 127 znaků číslice, písmena anglické abecedy, matematické symboly, řídící znaky,... zbytek obsahuje rámečky, akcentovaná písmena,... Národní znaky a jiné radosti umisťují se od 127 výš nelze zachovat všechny znaky 22 / 28

Ascii tabulka 23 / 28

Nešťastná čeština mnoho různých kódování iso-8859-2, cp1250,... nutnost znát kódování v kterém byl text napsán ve windows 1250: cp1250 (windows): Příliš žluťoučký kůň úpěl ďábelské ódy iso-8859-2 (linux): Přília ľluoučký kůň úpěl ďábelské ódy cp852 (dos): Pýˇliç luśouźkě kĺ LpŘl Ô belsk dy 24 / 28

Kódování znaků 16 bitů Unicode 256 2 = 65536 nejnovější norma dokonce 31 bitů přes 2 miliardy znaků Lze zobrazovat všechny znaky najednou Text zabírá dvojnásobek místa Většina evropských znaků se nachází ve spodní části kódování UTF-8 různá délka znaku od 1 do 3 bytů 25 / 28

Zkuste si Pomocí funkce DataOutputStream.writeChar zapsat do souboru několik různých znaků Pomocí hexadecimálního prohlížeče si znaky prohlédnout http://www.simdesign.nl/binview.html Zjistěte jaké kódování používá java jaké kódy odpovídají znakům české abecedy 26 / 28

Konec 27 / 28

Konec 28 / 28