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



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

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

v aritmetické jednotce počíta

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

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

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

Algoritmizace a programování

Architektury počítačů

Algoritmy a datové struktury

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

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

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

Zápis programu v jazyce C#

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

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

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

Principy počítačů I Reprezentace dat

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

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

Informatika Datové formáty

Mikroprocesorová technika (BMPT)

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

Čísla a číselné soustavy.

ADT/ADS = abstraktní datové typy / struktury

Datové typy pro reálná čísla

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

PB002 Základy informačních technologií

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

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

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

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

7. Datové typy v Javě

Jazyk C# a platforma.net

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

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

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

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

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

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

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

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

ČÍSELNÉ SOUSTAVY PŘEVODY

- tzv. standardní vstupní a výstupní proud (input / output stream)

Algoritmizace a programování

Paměť počítače. alg2 1

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

Elementární datové typy

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

Úvod do programovacích jazyků (Java)

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

Číselné soustavy a převody mezi nimi

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

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů

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

Převody mezi číselnými soustavami

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

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

Základy jazyka C. Základy programování 1 Tomáš Kühr

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

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

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

Výrazy, operace, příkazy

Formátové specifikace formátovací řetězce

- jak udělat konstantu long int: L long velka = 78L;

Opakování programování

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

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

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

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

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

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

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í

Úvod do programování - Java

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

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

Programování v jazyce JavaScript

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

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

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

IAJCE Přednáška č. 7. řízení semaforu na křižovatce = přepínání červená/oranžová/zelená

Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Programovací jazyk C++ Hodina 1

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <->

Y36SAP - aritmetika. Osnova

IUJCE 07/08 Přednáška č. 1

Struktura programu, proměnné, konstanty, výrazy v jazycích C a C#

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Úvod do programování 7. hodina

Proměnná a její uložení v paměti

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

Datové typy strana 29

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Struktura a architektura počítačů

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

Úvod do programování. Lekce 1

Řešení sady 1. Úvod do programování 1 Tomáš Kühr

Rozšíření ksh vůči sh při práci s proměnnými

Algoritmizace a programování

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

Transkript:

Uložení dat v počítači Data = užitečné, zpracovávané informace Kódování (formát) dat = způsob uložení v počítači (nutno vše převést na čísla ve dvojkové soustavě) Příklady kódování dat Text každému znaku přiřazeno číslo (ASCII tabulka, UNICODE,...) Ahoj mami. Paměť 46 105 109 97 109 32 106 111 104 65 pozor na rozdíl: int x = 134; Paměť 134 52 51 49 string x = "134"; Obraz RGB (Red Green Blue) barevný model R G B červená 255 0 0 zelená 0 255 0 modrá 0 0 255 bílá 255 255 255 černá 0 0 0 obecná 244 115 155 o pokud barva 0; 255 (8 b) (24 b barvy; true color ) 255 255 255 = 16 581 375 kombinací 1

Paměť 169 179 173 R G B 30 35 70 R G B Uložení čísel v paměti počítače převody soustav dec bin viz příloha Celá čísla (fixed point numbers); čísla s pevnou řádovou čárkou Bez znaménka (unsigned); sign = znaménko v paměti přímý obraz čísla v bin. soustavě b 7 1 bit b 0 o Příklad: 10 na 8 b 10 = 0 2 0 + 1 2 1 + 0 2 2 + 1 2 3 + 0 2 4 +... + 0 2 7 = 0000 1010 hodnota bitu b 0 váha bitu b 0 b 31 10 na 32 b 0000 0000 0000 0000 0000 0000 0000 1010 b 7 b 0 kapacita čísla K = počet různých čísel (kombinací) uložitelných do n bitů o příklady 8 b = 1 B = 2 8 = 256 32 b = 4 B = 2 32 = 4 294 967 296 nejmenší zobrazitelné dekadické číslo: 0 největší zobrazitelné dekadické číslo: 2

o příklady: 8 b = 2 8 = 255 32 b = 2 32 = 4 294 967 295 Se znaménkem (signed) jeden bit uložení znaménka 0 + 1 vlastní vyjádření záporného čísla několik možností (přímý kód, jedničkový doplněk, dvojkový doplněk, kód s posunutou nulou,...) Dvojkový doplněk o na PC všechny celočíselné datové typy o obraz čísla A v doplňkovém kódu D(A): D(A) = A pro A >= 0 D(A) = 2 n + A pro A < 0 o Příklad (n = 3): A = 1; D(A) = 2 3 + ( 1) = 7 o čísla pro n = 3 v paměti D(A) bin dec kladná čísla 000 0 0 001 1 1 010 2 2 záporná čísla 011 3 3 100 4-4 101 5-3 110 6-2 111 7-1 o nejmenší zobrazitelné dekadické číslo: 2 n-1 o největší zobrazitelné dekadické číslo: 2 n-1 1 3

princip práce I/O metod 32 b dvojkový doplněk int x; x = Int32.Parse(Console.ReadLine()); do paměti: 4 294 967 264 int y = -251883; Console.WriteLine(y); zadáno: 32 v paměti: 4 294 715 413 na obrazovku: 251 883 Reálná čísla (floating point number); čísla v pohyblivé řádové čárce obraz čísla A Exponent určuje rozsah Mantisa určuje přesnost výukový formát (desítková soustava) s M s E M 999; 999 E 99; 99 o Příklady: číslo obraz poznámka 999 10 99 +999+99 max. kladné číslo 1 10 99 +001 99 min. kladné číslo 0 +000+00 1,2 +012 01 několik obrazů +120 02 12,345 +123 01 ztráta přesnosti, sk. hodnota 12,3 standard IEEE 754 o více na http://en.wikipedia.org/wiki/ieee754 o převodník http://babbage.cs.qc.edu/ieee-754/ 4

o čísla s jednoduchou přesností (32 b, single precision) b 31 s E M b 0 1 b 8 b 23 b hodnota čísla: přesnost: 7-8 platných číslic příklady hodnota single obraz single hodnota 3 0x40400000 1.5 2 1 3,1 0x 40466666 1.55 2 1 = 3.0999999 uložena nepřesně!!! o čísla s dvojnásobnou přesností (64 b, double precision) b 63 s E M b 0 1 b 11 b 52 b hodnota čísla: přesnost: 15-16 platných číslic o lze uložit i nečísla NaN (Not a Number) např. SQRT(-1) + např. 10/0 Číselné datové typy v C# Celočíselné datový typ třída CTS bitů znam. rozsah sbyte SByte 8 s 128 127 byte Byte 8 bez 0 255 short Int16 16 s 32 768 32 767 ushort UInt16 16 bez 0 65 535 int Int32 32 s 2 147 483 648 2 147 483 647 uint UInt32 32 bez 0 4 294 967 295 long Int64 64 s 9 233 10 15 9 233 10 15 ulong UInt64 64 bez 0 18 466 10 15 5

signed typy dvojkový doplněk Reálné přednostně používat int datový typ třída CTS bitů Rozsah platných číslic float Float 32 +(-) 1.5 10-45 až +(-)3.4 10 38 7 double Double 64 +(-) 5.0 10-324 až +(-)1.7 10 308 15-16 decimal Decimal 128 float nepoužívat (nepřesné), standardně double decimal o pseudo reálné číslo, pro finanční výpočty o oproti double zvýšená přesnost, avšak menší rozsah Poznámky reálné vs. celé číslo jako float 4.203895392974451e-45 int y = 3; 00000000000000000000000000000011 float x = 3.0f; 01000000010000000000000000000000 aritmetické operace s reálnými typy o nepřesné jako int 1 077 936 128 Typová konverze (cast expression), přetypování = změna datového typu při operacích = přepočet mezi obrazy téhož čísla v různých formátech (datových typech) princip I int a = 3; int b = a; prostá bitová kopie princip II int a = 3; float b = a; překladač musí vložit kód po přepočet 3 na 3.0f Implicitní automatická konverze z nižších typů na vyšší nehrozí ztráta informace (v rozsahu čísel), např.: byte int double 6

příklady int a = 2; double x, y; int double x = a; y = 10; x = y + a; int int double double Explicitní = konverze z vyšších typů na nižší o reálné typy celočíselné (oseknutím zlomkové části čísla) např. double o větší celočíselné int menší celočíselné např. int byte potenciální riziko ztráty informace syntaxe: (novy_typ)vyraz příklad: int a; float b=2.87; a = (int)b; double x = (double)30; a = 10 * (int)(a + b); Konstanty a literály Literál = jakýkoli neproměnný objekt datové povahy literál typu string Console.Write("Zadej polomer kruhu: "); double prumer = 3.141592 * polomer; literál typu double datový typ určen: o implicitně dle povahy literálu o explicitně (viz dále) 7

Celočíselné dle soustavy o desítková (decadic) první číslice nesmí být 0 12-47992 o šestnáctková (hexadecimal) 0X12 0xAAAA o osmičková (octal) 012 dle typu o automaticky dle velikosti neuveden implicitně int int x = 32; literál typu int větší než int (uint) long (ulong) Console.WriteLine(3148608214); uint Reálné o explicitně: sufix u (U) = unsigned, l (L) = long prom1 = 124LU * prom2; prom1 = 124U * prom2; dle formy zápisu: o dekadicky: 1.234 o exp. tvar: o dle typu o neuveden o explicitně 13e+23, -10.3E-23 implicitně double float sufix f (F) double sufix d (D) decimal sufix m (M) Console.WriteLine(14e+3F); float Konstanta (konstatní proměnná) odstranění magických čísel literál! const double PI = 3.14592; double obsah = PI * prumer * prumer / 4; double obvod = PI * prumer; nutno inicializovat přímo v definici (literálem), dál se nesmí měnit const double PI; // chyba PI = 3.14592; // chyba 8

konstanta jakéhokoli datového typu const int MAX = 150; const string ERROR_MESSAGE = "V programu nastala chyba"; const float K3 = 0.1245f; CTS třídy Console.WriteLine(ERROR_MESSAGE); CTS (Common type specification) datové typy.net čtení dat z klávesnice datovytyp id = CTSTrida.Parse(Console... o Příklad: long promenna= Int64.Parse(Console... mezní hodnoty rozsahů CTSTrida.MaxValue CTSTrida.MinValue o Příklad: Console.WriteLine("max. hodnota v int je {0}", Int32.MaxValue); nečísla v reálných typech Double.NaN Double.PositiveInfinity Double.NegativeInfinity o Příklad: double a = 10, b = 0; Console.WriteLine(a/b); Console.WriteLine(Math.Sqrt(-1)); 9