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

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

Architektury počítačů

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

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

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

v aritmetické jednotce počíta

Čísla a číselné soustavy.

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

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

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

E. Pohyblivářádováčárka

Principy počítačů I Reprezentace dat

Mikroprocesorová technika (BMPT)

Aritmetické operace a obvody pro jejich realizaci

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

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

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

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

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

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

Aplikovaná numerická matematika

Algoritmy a datové struktury

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

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

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

Informatika Datové formáty

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

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

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

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

Principy počítačů a operačních systémů

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

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

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

Struktura a architektura počítačů

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

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

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

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

Úvod do problematiky numerických metod. Numerické metody. Ústav matematiky. 6. února 2006

PB002 Základy informačních technologií

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

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

ČÍSELNÉ SOUSTAVY PŘEVODY

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

Struktura a architektura počítačů

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

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

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

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

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

Y36SAP - aritmetika. Osnova

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Vybrané problémy výpočtů na PC s pohyblivou řádovou čárkou Nomindalai Naranbaatar

Pohyblivářádováčárka

Číselné soustavy a převody mezi nimi

Elementární datové typy

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

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Číslo materiálu. Datum tvorby Srpen 2012

Úvod do programování 7. hodina

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

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

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

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.

Algoritmizace a programování

Násobení. MI-AAK(Aritmetika a kódy)

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

LEKCE 6. Operátory. V této lekci najdete:

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

Architektura počítačů

Počítání s neúplnými čísly 1

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

Principy cpypočítačůčů a operačních systémů

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

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

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

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

Bakalářská matematika I

MATA Př 3. Číselné soustavy. Desítková soustava (dekadická) základ 10, číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Číselné soustavy. Jedná se o způsob reprezentace čísel.

1. Základní pojmy a číselné soustavy

1. 1 P Ř I R O Z E N Á Č Í S L A

Sada 1 - Základy programování

Digitalizace dat metodika

Úvod do teorie měření. Eva Hejnová

ISU Cvičení 1. Marta Čudová

Fakulta elektrotechnická Katedra aplikované elektroniky a telekomunikací. Bakalářská práce. Zaokrouhlovací chyby v číslicových systémech

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

Dělení. MI-AAK(Aritmetika a kódy)

CX77 IV Elektronická kalkulačka s tiskárnou Uživatelský manuál

KALKULÁTORY EXP LOCAL SIN

Datové typy pro reálná čísla

Už známe datové typy pro representaci celých čísel i typy pro representaci

Úvod do teorie měření. Eva Hejnová

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

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

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

P2 Číselné soustavy, jejich převody a operace v čís. soustavách

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Transkript:

Počítačové systémy Zobrazení čísel v počítači Miroslav Flídr Počítačové systémy LS 2007-1/21- Západočeská univerzita v Plzni

Vážený poziční kód Obecný předpis čísla vyjádřeného v pozičním systému: C = n 1 i= l w i b i b představuje základ zvoleného pozičního systému váha w i může nabývat pouze určitých hodnot (0... b 1) Z hlediska výpočetní techniky jsou zajímavé poziční systémy o základu 2, 8, 16 označované jako binární, oktalové a hexadecimální. Příklad: 1823, 56 10 = 1 10 3 + 8 10 2 + 2 10 1 + 3 10 0 + 5 10 1 + 6 10 2 1010, 101 2 = 1 2 3 + 0 2 2 + 1 2 1 + 0 2 0 + 1 2 1 + 0 2 2 + 1 2 3 Miroslav Flídr Počítačové systémy LS 2007-2/21- Západočeská univerzita v Plzni

Celá čísla s pevnou řádovou čárkou a znaménkem Čísla jsou zobrazena pomocí váženého pozičního systému, kde l = 0 a řádová čárka je za poslední platnou číslicí. Je třeba rozlišit kladná a záporná čísla nejvíce významný bit představuje znaménko. Je možné uvažovat pouze kladná čísla. Např. pro 8mi bitová čísla je možné zobrazit 2 8 = 256 čísel. Existuje několik druhů kódování celých čísel přímý kód inverzní kód dvojkový doplněk excess 2 n 1 1 Miroslav Flídr Počítačové systémy LS 2007-3/21- Západočeská univerzita v Plzni

Přímý kód (Signed magnitude) Představuje nejjednodušší způsob reprezentace celých čísel. nejvíce významný bit představuje znaménko zbylé bity představují velikost n-bitové celé číslo umožní zobrazit čísla v rozsahu (2 n 1 1) 2 n 1 1 Příklad: +31 10 = 0 0011111 2 31 10 = 1 0011111 2 Nevýhody přímého kódu Poskytuje dvě reprezentace pro nulu (00000000 a 10000000). Nešikovné pro hardwarovou implementaci (složitá operace sčítání) Miroslav Flídr Počítačové systémy LS 2007-4/21- Západočeská univerzita v Plzni

Dvojkový doplněk Nejčastěji používaný způsob kódování. kladná čísla jsou stejná jako v přímém kódu záporná čísla získáme invertováním kladného a přičtením jedničky Příklad: 72 10 : 01001000 2 inverze : 10110111 2 +1 : 00000001 2 72 10 : 10111000 2 Vlastnosti dvojkového doplňku pouze jedna reprezentace pro nulu asymetrický rozsah čísel: 2 n 1 2 n 1 1 jednoduchá implementace sčítaní a odčítání Miroslav Flídr Počítačové systémy LS 2007-5/21- Západočeská univerzita v Plzni

Posunuté kódování (excess-n) dvojkový doplněk se posouvá přičtením hodnoty N = 2 n 1 1 zachovává význam znaménkového bitu (1 - kladné, 0 - záporné) usnadňuje porovnávnání/třídění čísel pouze jedna reprezentace pro nulu (01111111 2 ) Příklad: excess 127 +72 10 : 11000111 2 72 10 : 00010111 2 Miroslav Flídr Počítačové systémy LS 2007-6/21- Západočeská univerzita v Plzni

Reálná čísla Čísla v pevné řádové čárce používá se pouze pro speciální účely (finanční software) vhodné pro čísla se známou pevným formátem (např. měna) zobrazeny jako přeškálovaná celá čísla Čísla v pohyblivé řádové čárce (floating-point čísla) používá se takzvaná vědecká notace R = s m b e Hodnota dána znaménkem s, mantisou m a exponentem e při bázi číselného systému b. floating point čísla jsou pouhou aproximací reálných čísel dokáže zobrazit pouze konečný počet čísel častá nepřesnost zobrazení (např. není možné zobrazit číslo 1/10) Miroslav Flídr Počítačové systémy LS 2007-7/21- Západočeská univerzita v Plzni

Floating-point čísla dříve různé konvence reprezentace floating-point čísel různé volby kódování mantisy a exponentu odlišný tvar mantisy (např. čistá desetinná část) rozdílné zobrazení tzv. normalizovaných čísel mnoho reprezentací vedlo k nekorektním aritmetickým operacím zavedena norma IEEE 754-1985 Co specifikuje standard IEEE 754 formát reprezentace precizní specifikace výsledků operací speciální hodnoty předepsané chování při neplatných operacích Miroslav Flídr Počítačové systémy LS 2007-8/21- Západočeská univerzita v Plzni

Standard IEEE 754 Tři základní přesnosti zobrazení single-precision (32 bitové) double-precision (64 bitové) extended precision (80 bitové) používá se jen jako interní formát Hodnota čísla zobrazeného dle standardu IEEE 754 F = ( 1) sign (1 + fraction) 2 exponent Miroslav Flídr Počítačové systémy LS 2007-9/21- Západočeská univerzita v Plzni

Zobrazení čísla dle standardu IEEE 754 Exponent posunuté kódování snadné třídění rozsah exponentů 2 126 2 127 resp. 2 1022 2 1023 Mantisa tzv. signifikant je dán jako hodnota (1 + fraction) uvažuje se implicitní 1 vlevo od řádové čárky mantisa obsahuje pouze fraction (je normalizovaná) mantisa reprezentuje čísla 1 < m < 2 Příklad dekadické 0.75 = 3/4 = 3/2 2 binární 0.11 = 1.1 2 1 IEEE 754 1 11111110 10000000000000000000000 Miroslav Flídr Počítačové systémy LS 2007-10/21- Západočeská univerzita v Plzni

Zobrazení čísla dle standardu IEEE 754 Typy čísel dle IEEE 754 normalizované ± 0 < ex ponent < max libovolný bitový vzor denormalizované ± 000 0 libovolný nenulový vzor nula ± 000 0 000 0 Inf ± 111 1 000 0 NaN ± 111 1 libovolný nenulový vzor Nástroje pro ošetření chyb ošetření podtečení rozšíření o denormalizovaná čísla ošetření přetečení zavedeno číslo Inf obsahuje dvě nuly mohou pomoci s určením znaménka přetečení nezobrazitelné/neexistující číslo Miroslav Flídr Počítačové systémy LS 2007-11/21- Západočeská univerzita v Plzni

Ošetření singulárních případů ve standardu IEEE 754 Ošetření podtečení doplnění o denormalizovaná čísla (bohužel nepovinné) nejmenší normalizované číslo 0 00000001 00000000000000000000000 = 1.0 2 126 1.5 10 8 největší a nejmenší denormalizované číslo 0 00000000 11111111111111111111111 0.9 9 2 127 1.5 10 8 0 00000000 00000000000000000000001 = 2 23 2 127 7 10 46 přijatelnější než rovnou zaokrouhlit k nule uvažována implicitní nula před desetinnou tečkou Miroslav Flídr Počítačové systémy LS 2007-12/21- Západočeská univerzita v Plzni

Ošetření singulárních případů ve standardu IEEE 754 Ošetření přetečení speciální reprezentace pro nekonečno dvě nekonečna lišící se znaménkem 0 11111111 00000000000000000000000 = +Inf 1 11111111 00000000000000000000000 = Inf uvažována implicitní nula před desetinnou tečkou Inf je možné použít v matematických operacích Inf + Inf = Inf Inf + C = Inf Inf - C = Inf C / 0.0 = Inf -C / 0.0 = -Inf C / Inf = 0.0 Miroslav Flídr Počítačové systémy LS 2007-13/21- Západočeská univerzita v Plzni

Ošetření singulárních případů ve standardu IEEE 754 Nula zobrazení jako u denormalizovaných čísel 00000000000000000000000000000000 = +0.0 10000000000000000000000000000000 = 0.0 +0.0 a -0.0 jsou si rovny určení znaménka přetečení C / Inf = 0.0 C / -Inf = -0.0 1 / +0.0 = Inf 1 / -0.0 = -Inf Miroslav Flídr Počítačové systémy LS 2007-14/21- Západočeská univerzita v Plzni

Ošetření singulárních případů ve standardu IEEE 754 NaN (Not a Number) jakmile se během výpočtu vyskytne zůstane zachováno NaN není rovno žádnému číslu (ani sobě) NaN není ani větší ani menší než jakékoli číslo NaN reprezentuje výsledek všech operací, které vedou na exponent 11 1 a libovolnou nenulovou mantisu Inf / Inf = NaN 0.0 / 0.0 = NaN sqrt( -3 ) = NaN arccos( 2.4 ) = NaN log(-5) = NaN Miroslav Flídr Počítačové systémy LS 2007-15/21- Západočeská univerzita v Plzni

Celočíselná aritmetika Aritmetika s čísly v přímém kódu sčítaní při stejném znaménku sčítanců: sečtou se hodnoty čísel a zachová se znaménko k přetečení dojde jestliže součet hodnot je větší než 2 (n 1) 1 sčítaní při různých znaménkách sčítanců: nalezne se číslo s větší absolutní hodnotou a odečte se od něj menší číslo přetečení není možné násobení a dělení jednoduché: provede se operace pouze s hodnotami a znaménko se určí jako XOR původních znamének Příklad: 64 10 + 1 10 ( 1 1000000 2 + 0 0000001 2 ) 64 10 : 1 1000000 2 1 10 : 1 0000001 2 63 10 : 1 0111111 2 Miroslav Flídr Počítačové systémy LS 2007-16/21- Západočeská univerzita v Plzni

Celočíselná aritmetika Aritmetika s čísly v doplňkovém kódu sčítaní po bitech přenos z nejvíce významného bitu je zahozen při různých znaménkách nemůže dojít k přetečení jestliže se liší přenos do a ze znaménkového bitu došlo k přetečení liší-li se znaménko sčítanců a výsledku, tak došlo k přetečení odčítaní je provedeno přičtením negovaného čísla (převrácená hodnota všech bitů + 1) není potřeba extra HW pro násobení a dělení se čísla převedou na kladná a po provedení operace se vyhodnotí znaménko Příklad: 64 10 1 10 ( 1 1000000 2 0 0000001 2 ) 64 10 : 1 1000000 2 +( 1 10 ) : 1 1111111 2 63 10 : 0 0111111 2 Miroslav Flídr Počítačové systémy LS 2007-17/21- Západočeská univerzita v Plzni

Aritmetika s floating-point čísly Pro realizaci operací s floating point čísly není nutná speciální implementace v HW (postačí sčítání a posun). To umožňuje práci s těmito čísly i na levnějších systémech používaných např. ve vestavných systémech. Operace sčítání a odečítání s čísly v IEEE 754 formátu 1 opětné vložení implicitního bitu (jedničky resp. nuly u denormalizovaných čísel) 2 denormalizace - je nutné srovnat exponenty 3 vlastní operace sčítání/odečítání 4 opětovná normalizace 5 příprava před uložením ošetření vysunutých bitů - použití guard bitů zaokrouhlení (k nule, k nejbližšímu, k plus nekonečnu, k mínus nekonečnu) odstranění implicitního bitu Miroslav Flídr Počítačové systémy LS 2007-18/21- Západočeská univerzita v Plzni

Aritmetika s floating-point čísly Příklad sčítání (s použitím mini floating-point čísel) Denormalizace: Srovnání exponentů a sečtení: Normalizace: 3.25 10 : 0 0001 101 2 +0.125 10 : +0 1101 000 2 3.25 10 : 0 0001 (1.)101(00) 2 +0.125 10 : +0 1101 (1.)000(00) 2 3.25 10 : 0 0001 (1.)101(00) 2 +0.125 10 : 0 0001 (0.)000(10) 2 3.375 10 : 0 0001 (1.)101(10) 2 3.375 10 = 0 0001 101 2 (3.25 10 ) Miroslav Flídr Počítačové systémy LS 2007-19/21- Západočeská univerzita v Plzni

Aritmetika s floating-point čísly Operace násobení 1 opětné vložení implicitního bitu 2 pronásobení mantis 3 sečtení exponentů 4 provést normalizaci posunem doprava a zvýšit exponent o počet posunů 5 uložení výsledku bez implicitního bitu po zaokrouhlení Operace dělení 1 opětné vložení implicitního bitu 2 podělení mantis 3 odečtení exponentů 4 provést normalizaci posunem doleva a snížit exponent o počet posunů 5 uložení výsledku bez implicitního bitu po zaokrouhlení Miroslav Flídr Počítačové systémy LS 2007-20/21- Západočeská univerzita v Plzni

"Give a digital computer a problem in arithmetic, and it will grind away methodically, tirelessly, at gigahertz speed, until ultimately it produces the wrong answer" Brian Hayes, A Lucid interval, 2003 Problémy s aritmetikou s pevnou přesností zobrazená čísla mají omezenou přesnost a velikost (chyby zaokrouhlování, přetečení, podtečení) nepokrývají úplnou množinu celých resp. reálných čísel vzhledem k aritmetických operacích nejsou uzavřenými množinami neplatí obecně asociativita operací V jakých úlohách automatického řízení se projeví problémy? řešení obyčejných lineárních rovnic vyšetřování řiditelnosti a pozorovatelnosti výpočty frekvenční odezvy výpočty Lyapunovy, Sylvestrovy a Riccatiho rovnice Miroslav Flídr Počítačové systémy LS 2007-21/21- Západočeská univerzita v Plzni