Reprezentace dat „There are only 10 types of people in the world: - those who understand binary, - and those who don't.“

Slides:



Advertisements
Podobné prezentace
Základy ukládání dat v počítači
Advertisements

PRIPO Principy počítačů
Číselné obory -Zákony, uzavřenost a operace
Množiny Přirozená čísla Celá čísla Racionální čísla Komplexní čísla
1 – Informatika Nauka (tj. věda) o informacích, tj. o zápisu (kódování (angl.)), přenosu (transfer (angl.)), zpracování (procesování (angl.)) informací.
Aplikační a programové vybavení
Algebra.
Otázky k absolutoriu HW 1 - 5
RoBla Číselné soustavy.
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM
Informatika pro ekonomy II přednáška 4
Reprezentace dat v počítači
Obchodní akademie, Ostrava-Poruba, příspěvková organizace
Základy číslicové techniky
Mocniny, odmocniny, úpravy algebraických výrazů
Základy číslicové techniky
Číselné soustavy david rozlílek ME4B
Radim Farana Podklady pro výuku
Ukládání čísel v počítači 1
ČÍSELNÉ SOUSTAVY Desítková Dvojková.
Reprezentace dat „There are only 10 types of people in the world: - those who understand binary, - and those who don't.“
Radim Farana Podklady pro výuku
Datové typy a struktury
Aplikační a programové vybavení
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Výrok „Dostali na to neomezený rozpočet, a podařilo se jim ho překročit …„ (Michael Armstrong, CEO, problém Y2K, )
* Druhá mocnina Matematika – 8. ročník *
Věty o počítání s mocninami Věta o násobení mocnin.
Aritmetické operace ve dvojkové soustavě, šestnáctkový součet
BCD kód a záporná dvojková čísla
ČÍSELNÉ SOUSTAVY Mgr. Petr Němec ©2009
Uložení čísel v počítači Informatika pro ekonomy II doplněk.
* Třetí mocnina Matematika – 8. ročník *
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Srovnání možností matematického vyjádření části celku
Číselné soustavy dekadická binární hexadecimální
Převody mezi číselnými soustavami 1
Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Základní pojmy číslicové techniky
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
Mikroprocesor.
Racionální čísla.
Instrukce procesoru.
Číselné výrazy s proměnnou
Reprezentace dat v počítači. základní pojmy  BIT označení b nejmenší jednotka informace v paměti počítače název vznikl z angl. BINARY DIGIT (dvojkové.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Číselné soustavy.
Číselné soustavy.  Obecně lze libovolné celé kladné číslo zapsat polynomem a n  z n + a n-1  z n-1 + … + a 0  z 0, kde z je libovolné přirozené číslo.
Složitost algoritmu Vybrané problémy: Při analýze složitosti jednotlivých algoritmů často narazíme na problém, jakým způsobem vzít v úvahu velikost vstupu.
Číselné soustavy - převody
ALU Aritmeticko-logická jednotka
Mocniny Druhá mocnina.
Mocniny Druhá mocnina.
1. Najdi násobky čísel 4 a Elektronická učebnice - Základní škola Děčín VI, Na Stráni 879/2, příspěvková organizace Elektronické.
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_18-17
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Název projektu: Moderní výuka s využitím ICT
Ukládání dat v paměti počítače
Aritmetické operace v číselných soustavách
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM
Výukový materiál zpracován v rámci projektu
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM
Informatika / … o číslech
Aritmetické operace s binárními čísly
Číselné soustavy Číselné soustavy reprezentují čísla, která jsou pro nás symbolem určitého množství – kvantity. Desítkovou soustavu se učíme již v první.
Výukový materiál zpracován v rámci projektu
Šestnáctková a osmičková soustava
Práce s desetinnými čísly
Číselné soustavy a kódy
Soustavy lineárních rovnic
Transkript prezentace:

Reprezentace dat „There are only 10 types of people in the world: - those who understand binary, - and those who don't.“

Typy dat Literály Čísla Instrukce logické hodnoty znaky grafické symboly nečíselná data Čísla celočíselná (integer) racionální (fraction) racionální (floating point) Instrukce

Logické hodnoty možno reprezentovat jediným bitem problémy s adresováním reprezentace celou datovou jednotkou problémy s velikostí

Znaky EBCDIC ASCII UNICODE 256 závazných znaků 00 .. 3F ... speciální (řídící) znaky 40 .. FF ... tisknutelné znaky Mnoho volných pozic Abeceda není v jednom bloku ASCII UNICODE

ASCII American Standards Code for Information Interchange

ASCII – „česká“ rozšíření KOI8-čs PC standard EAST8 Latin x (Latin 2) Windows codepage (1250) ISO/IEC 8859 (8859-2)

UNICODE součást normy ISO/IEC 10646-1 (1993) znak reprezentován vícebytovou sekvencí diakritika možnost uživatelských symbolů problém se staršími programy pozor na konkrétní implementaci podpora téměř všech národních abeced

Reprezentace čísel Polyadické číselné soustavy Číslo reprezentujeme uspořádanou (m+n)-ticí koeficientů ai Soustava může mít jeden nebo více základů (radix mumber system) V soustavě s jedním základem z jsou hodnoty zi určeny jako zi=zi (s tímto vystačíme) m=0 ... celá čísla, m>0 ... zlomková část

Reprezentace čísel Nepolyadické římské číslice 1648  MDCXLVIII 2003  MMIII 9  IX, VIIII pro počítání nevhodné soustava zbytkových tříd (residue number system) definována k-tice různých základů – prvočísel číslo vyjádřeno k-ticí zbytků po dělení příslušným základem Příklad: základy 2,3,11: číslo „devět“ zapsáno jako 109 jednoznačné pouze pro čísla menší než součin základů

Přepis celého čísla do soustavy s jiným základem Zápis čísla A v soustavě o základu z: A = an-1zn-1 + an-2zn-2 + … + a1z1 + a0z0 = (an-1zn-2 + an-2zn-3 + … a1)z + a0 = a0 + z (a1 + z (a2 + …+ z(an-2 + zan-1)…)) V soustavě o základu z’ bude A zapsáno: A = b0 + z’(b1 + z’(b2 + …+ z’(bn-2 + z’bn-1)…)) A = z’  A/z’ + A mod z’  A/z’ je výsledek celočísel. dělení čísla A číslem z’ A mod z’ je zbytek při tomto dělení

Převodní algoritmus (pro celá čísla) číslo v soustavě z V soustavě o základu z dělit základem nové soustavy (z’) Výsledek dělení Výsledek je nula? NE Zbytek = bn Konec ANO

Příklady 1349 do sedmičkové soust.: 15110 do binární soustavy: 134 : 7 = 17 0 17 : 7 = 2 2 2 : 7 = 0 2 1349 = 2207 Pomocný výpočet: 134 : 7 = 17 54 15110 do binární soustavy: 151 : 2 = 75 1 75 : 2 = 37 1 37 : 2 = 18 1 18 : 2 = 9 0 9 : 2 = 4 1 4 : 2 = 2 0 2 : 2 = 1 0 1 : 2 = 0 1 15110 = 100101112

Převod do desítkové soustavy V té jsme zvyklí počítat, takže to jde takto: Koeficienty zápisu čísla o základu z vynásobíme příslušnou mocninou z a sečteme: A  an-1an-2 … a1a0 A = an-1zn-1 + an-2zn-2 + … + a1z1 + a0z0 Hornerovo schéma (úspornější výpočet): A = (…(an-1z + an-2)z + …)z + a0

Převod čísla se zlomkovou částí Hledáme koeficienty pro zi, -m  i  n-1 Celá část: popsána výše Zlomková část: podobně, ale základem nové soustavy násobíme. Celá část dává další číslici Zlomková část postupuje do další iterace

Převodní algoritmus (pro zlomkovou část) zlomková část čísla v soustavě z V soustavě o základu z násobit základem nové soustavy (z’) zlomková část výsledek je nula? NE celá část = bn ANO Konec

Příklady Postup nemusí být konečný! 0,110 a 0,62510 převést do dvojkové soustavy: 0,1 * 2 = 0,2 0 0,625 * 2 = 1,250 1 0,2 * 2 = 0,4 0 0,250 * 2 = 0,500 0 0,4 * 2 = 0,8 0 0,500 * 2 = 1,000 1 0,8 * 2 = 1,6 1 0,6 * 2 = 1,2 1 0,62510 = 0,1012 0,2 * 2 = 0,4 0 0,110 0,0001100110011…2 Postup nemusí být konečný!

Uložení čísel v paměti přirozená čísla celá čísla racionální reálná (někdy se tomu tak říká, ale stejně jde jen o racionální čísla – neboť každé číslo s konečným desetinným, binárním, … rozvojem je racionální)

Uložení přirozených čísel převodem do binární soustavy (přímé uložení) BCD – Binary Coded Decimal Každá cifra desítkového zápisu reprezentována pomocí dolních 4 bitů v bytu „horní“ 4 bity nevyužity nebo využity jinak Příklad: 193010  0001 1001 0011 0000 Výhoda: snadné zpracování vstupů/výstupů Problémy: aritmetika  speciální instrukce neúsporné  packed BCD (2 cifry do 1 bytu)

Uložení celých čísel se znaménkem s posunutím číslo převedeno do binární podoby doplněno znaménkovým bitem (bit „zcela vlevo“) dvě reprezentace nuly, složitější aritmetické operace s posunutím k číslu se přičte konstanta reprezentující nulu posunuté číslo se převede do binární podoby dvojkový doplněk (zdaleka nejpoužívanější) přirozená čísla se zobrazí přímo, záporná „trikem“ vhodné pro aritmetické operace, zejména sčítání

Dvojkový doplněk „nejlevější bit“ je opět znaménkový uložené číslo dostaneme jako součet mocniné řady (jako u přirozených čísel) s tím, že pokud je znaménkový bit roven 1, tak v řadě reprezentuje číslo -2n-1 (kde n je počet bitů v reprezentaci) negace: z čísla se vyrobí číslo stejné „velikosti“ s opačným znaménkem takto: invertuj všechny bity a přičti 1 (sčítání jako u přirozených čísel) rozsah uložitelných čísel : (-2n-1, 2n-1 -1)

Příklady uložení číslo se znaménkem s posunutím dvojkový doplněk +7 0111 1111 +6 0110 1110 +5 0101 1101 +4 0100 1100 +3 0011 1011 +2 0010 1010 +1 0001 1001 +0 0000 1000 -0 -1 -2 -3 -4 -5 -6 -7 -8 ---

Konverze délek (u dvojkového doplňku) znaménkové rozšíření +18 -18

Sčítání ve dvojkovém doplňku funguje zde normální (školní) algoritmus na sčítání přenos ze znaménkového bitu ven je ignorován přetečení (overflow) nastává právě tehdy, když znaménkový bit obou sčítanců je stejný a znaménkový bit součtu je opačný odečítání se realizuje pomocí negace a sčítání: A-B = A+(-B), tedy bitová inverze na B, přičtení jedničky a sečtení s A

Násobení mnohem složitější operace než sčítání implementace postupným sčítáním je pomalá (a*b = a + … + a) pro přirozená čísla jde přímočaře implementovat „školní“ algoritmus pro čísla ve dvojkovém doplňku je to složitější (Boothův algoritmus)

Násobení přirozených čísel terminologie: násobenec x násobitel = součin součin dostaneme jako součet částečných součinů, každý pro jednu číslici násobitele ve dvojkové soustavě: bit násobitele je 0  částečný součin = 0 bit násobitele je 1  částečný součin = násobenec při sčítání je každý částečný součet posunut o jeden bit doleva vzhledem k předchozímu součin dvou n-bitových čísel může být 2n-bitové číslo (delší ne) – např. 11 * 11 = 1001

Násobení přirozených čísel Algoritmus Registry: A,Q,M n-bitové, C 1-bitový (pro přenos) Inicializace: C,A := 0, Q := násobitel, M := násobenec Cyklus (n krát použijeme nejpravější bit v Q, bit Q0): Q0 = 0  posun sekvence C,A,Q o 1 bit vpravo Q0 = 1  přičtení M do A (případné přetečení do C) plus posun sekvence C,A,Q o 1 bit vpravo C A Q M C A Q 0 0000 1101 1011 inicializace 0 1101 1111 součet3 0 1011 1101 součet1 0 0110 1111 posun3 0 0101 1110 posun1 1 0001 1111 součet4 0 0010 1111 posun2 0 1000 1111 posun4

Násobení ve dvojkovém doplňku algoritmus pro přirozená čísla zde nefunguje triviální algoritmus: převés oba činitele na jejich absolutní hodnoty (pomocí negace), vynásobit je jako přirozená čísla a pak výsledek znegovat pokud právě jeden z činitelů byl záporný Boothův algoritmus: chytrá modifikace algoritmu pro přirozená čísla v každé iteraci aritmetický posun zachovávající znaménko (nejlevější bit v A se posune vpravo a zreplikuje, C není použito) součet jen na začátku a konci bloku jedniček (odečtení na začátku bloku a přičtení na konci) rychlejší než triviální algoritmus (téměř na všech HW používán) důkaz, že funguje korektně, je složitý (nebudeme provádět)

Uložení racionálních čísel Z různých možných reprezentací se nejvíce ujala reprezentace s plovoucí řádovou čárkou („floating point“): Je dán základ β a přesnost p (počet číslic) Příklad: 0,9 pro β=10, p=3 ... 9.00  10-1 0,1 pro β=2, p=24 ... (nelze přesně) 1.10011001100110011001100  2-4

Floating – point reprezentace Zápis ve tvaru (jedna cifra před desetinnou tečkou, zbytek za desetinnou tečkou) d0.d1d2 ... dp-1  β e ( 0  di  β ) reprezentuje číslo (d0  d1 β -1  ...  dp-1 β 1-p) β e Zápis nemusí být jednoznačný: 1.00  10-1 0.01  101 Je-li d0 0, reprezentace je nazývána normalizovanou Pro d0 0 je reprezentace nazývána denormalizovanou

IEEE Standard 754 dnes univerzálně rozšířený normalizovaná mantisa a exponent s posunem single precision: β=2, p=24, e  = 8 bitů double precision: β=2, p=53, e  = 11 bitů quadruple precision: β=2, p=113, e  = 15 bitů Extended formats: single extended: β=2, p≥32, e ≥ 11 bitů double extended: β=2, p≥64, e ≥ 15 bitů

IEEE Standard 754 zápis v bitovém formátu (single a double)

Možnosti zápisu dle IEEE 754 exponent mantisa význam emin-1 000…000 m  0  0 emin-1 m  0  0.m  2emin < emin, emax> m  1.m  2e emax+1 111…111   emax+1 m  0 1xxx…xxx QNaN m  0 0xxx…xxx SNaN

Operace s floating-point čísly A=M1 zexp1 B=M2 zexp2 Sčítání o odečítání Pro exp1exp2 je A+B = (M1 + M2)  zexp1 Pro exp1exp2 je nutno: A nebo B denormalizovat provést výpočet normalizovat výsledek Pozor: sčítání a odečítání nejsou asociativní přetečení či podtečení (při denormalizaci i při výpočtu) Násobení a dělení A.B = (M1 . M2)  zexp1+exp2 A/B = (M1 / M2)  zexp1-exp2

Vznik chyb Při výpočtu Při konverzi overflow – přetečení underflow – podtečení divide by zero – dělení nulou invalid – neplatná operace inexact – nepřesný výsledek Při konverzi scaling error – zavedením stupnice (škálování) truncation error – zanedbáním části čísla rounding error – zaokrouhlením (při pořizování)

Vícebytové sekvence jedno číslo je typicky uloženo ve více bytech problém – jak ukládat? jak přenášet? od nižších „řádů“ od vyšších „řádů“ jinak...? po jakých částech? hlavní problém: potrabilita SW a portabilita dat mezi zařízeními s různými způsoby ukládání