Zobrazenie čísiel v počítači

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

Strojový kód, assembler, emulátor počítača

Obsah. Reprezentácia údajov v počítači. Digitalizácia číselnej informácie. Digitalizácia znakov a textovej informácie.

Pozičné číselné sústavy. Dejiny. Číselná sústava je spôsob, akým sú zapisované čísla pomocou znakov (nazývaných cifry).

v aritmetické jednotce počíta

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

Šifrovanie, kódovanie, bit a byte, digitálne informácie. Kódovanie informácií v PC binárna (dvojková) číselná sústava

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

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

Úroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte

Architektury počítačů

Zvyškové triedy podľa modulu

M úlohy (vyriešené) pre rok 2017

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

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

Úplný zápis každého desiatkového čísla môžeme zapísať pomocou polynómu:

Jednoduchá správa pamäte

Čísla a číselné soustavy.

Funkcia - priradenie (predpis), ktoré každému prvku z množiny D priraďuje práve jeden prvok množiny H.

Logické základy číslicových počítačov

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

Algoritmy a datové struktury

Operačný systém Úvodná prednáška

Úroveň strojového kódu procesor Intel Pentium Úvod

Užívateľská príručka systému CEHZ. Základné zostavy Farmy podľa druhu činnosti

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

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

ČÍSELNÉ RADY. a n (1) n=1

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

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

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

MOCNINY A ODMOCNINY Eva Zummerová

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

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

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

Multiplexor a demultiplexor

Základy algoritmizácie a programovania

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

Prevody z pointfree tvaru na pointwise tvar

Zápis predmetov do AiSu na aktuálny akademický rok

Informatika a jej jednotlivé oblastí

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

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

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

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

Segmentovanie a stránkovanie v procesoroch Intel Pentium

Spracovanie informácií

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

1. Formát exportov typu *.gpc (ABO)

GIS aplikácie Príručka pre užívateľa

7.1 Návrhové zobrazenie dotazu

Mikroprocesorová technika (BMPT)

Principy počítačů I Reprezentace dat

Obr. 1 - názov podpísaného súboru/kontajnera v sivej lište

2. Nahratie mapy pre Locus Map - formát sqlite alebo mbtiles do zariadenia (telefón, tablet) s OS Android.

Limita funkcie. Čo rozumieme pod blížiť sa? y x. 2 lim 3

To bolo ľahké. Dokážete nakresliť kúsok od prvého stromčeka rovnaký? Asi áno, veď môžete použiť tie isté príkazy.

15. Príkazy vetvenia

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Grafy

11. téma: Zaokrúhľovanie, práca so zaokrúhlenými číslami

Kombinatorická pravdepodobnosť (opakovanie)

Je to voľne dostupný programový balík (free software), ktorý sa používa na meraniach.

Datové typy pro reálná čísla

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

Matematika (platný od )

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

Ing. Jozef Klus KOMBINAČNÉ LOGICKÉ OBVODY

8. Relácia usporiadania

Iracionálne rovnice = 14 = ±

Skákalka. Otvoríme si program Zoner Callisto, cesta je Programy Aplikácie Grafika Zoner Callisto.

F akulta B aníctva, E kológie, R iadenia a G eotechnológií. Mozilla Firefox. Ing. Anna Grejtáková SPP D FBERG 2011

AR, MA a ARMA procesy

Naformátuj to. Naformátuj to. pre samoukov

NEVLASTNÁ VODIVOSŤ POLOVODIČOVÉHO MATERIÁLU TYPU P

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

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

Programovanie I. Úvod do programovania Mgr. Stanislav Horal, Katedra informatiky, FPV, UCM

Riešené úlohy Testovania 9/ 2011

Tematický výchovno vzdelávací plán Matematika

Téma : Špecifiká marketingu finančných služieb

Aritmetické operace a obvody pro jejich realizaci

PLASTOVÉ KARTY ZÁKAZNÍKOV

Informatika Datové formáty

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

Formuláre PowerPoint MGR. LUCIA BUDINSKÁ,

NPRG030 Programování I, 2018/19 1 / :25:37

ČÍSELNÉ SOUSTAVY PŘEVODY

INTERNET BANKING. Popis štruktúry technických formátov exportných súborov VŠETKO, ČO JE MOŽNÉ. with.vub.sk,

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

Total Commander. Základné nastavenia

DANE A DAŇOVÝ SYSTÉM V SR

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

Objektovo orientované programovanie v C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

Vytvorenie používateľov a nastavenie prístupov

Kreslenie vo Worde Chceme napríklad nakresliť čiaru priamku. V paneli ponúk klikneme na Vložiť a v paneli nástrojov klikneme na Tvary.

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

Úvodná strana IS ZASIELKY Prvky úvodnej stránky:

Plánovanie procesov a vlákien

AIS2 Hodnotenie študentov po skúške POMÔCKA PRE VYUČUJÚCICH

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

Transkript:

Zobrazenie čísiel v počítači Celé nezáporné čísla - čísla bez znamienka dvojková sústava iné používané sústavy - šestnástková a osmičková BCD kódovanie - Binary-Coded Decimal Všetky celé čísla - čísla so znamienkom priamy kód dvojkový doplnok kód posunutej nuly (kód "excess N") Reálne čísla (v skutočnosti podmnožina racionálnych čísiel) s pevnou čiarkou s pohyblivou čiarkou Celé a reálne čísla v Pascale a C Autor: Peter Tomcsányi, Niektoré práva vyhradené v zmysle licencie Creative Commons http://creativecommons.org/licenses/by-nc-sa/3.0/ Použité obrázky z učebnice: Andrew. S. Tanenbaum, Structured Computer Organization http://www.cs.vu.nl/~ast/books/

Celé čísla bez znamienka Počítače pracujú v dvojkovej sústave Prevod z desiatkovej do dvojkovej sústavy: 91 : 2 = 45 zvyšok 1 45 : 2 = 22 zvyšok 1 22 : 2 = 11 zvyšok 0 11 : 2 = 5 zvyšok 1 5 : 2 = 2 zvyšok 1 2 : 2 = 1 zvyšok 0 1 : 2 = 0 zvyšok 1 Najnižší rád Najvyšší rád 91 10 =1011011 2 91=64+16+8+2+1

Šestnástková sústava 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111 Ak počet cifier nie je deliteľný 4, tak ho zľava doplníme nulami. 01011011 5 B Prevod medzi dvojkovou a šestnástkovou sústavou je jednoduchý lebo pri ňom netreba deliť. Pri prevode z dvojkovej do šestnástkovej sústavy sa v čísle vytvoria skupiny po 4 cifrách (lebo 2 4 =16) a každá z nich sa prevedie na jednu cifru podľa tabuľky. Pri prevode zo šestnástkovej do dvojkovej sústavy sa každá šestnástková cifra vyjadrí štyrmi dvojkovými ciframi.

BCD - Binary-Coded Decimal 1395 každá cifra čísla zapísaného v desiatkovej sústave sa zvlášť prevedie do dvojkovej sústavy 0001 0011 1001 0101 Toto je číslo 1395 zakódované v BCD kóde do 16 bitov Používal sa v starších procesoroch Pre pomalšie počítače bol dobrým kompromisom dosť rýchleho prevodu z/do textového tvaru a rýchlosťou jednoduchých aritmetických výpočtov.

Binárne hodiny Úloha z Informatického bobra 2011/12, kategória Junior Tieto binárne hodiny ukazujú čas 12:59 Ktoré z nasledujúcich binárnych hodín ukazujú čas? a c b d

Celé čísla so znamienkom Priamy kód Oddelíme jeden bit pre znamienko V N bitoch teda použijeme N-1 bitov na absolútnu hodnotu čísla a 1 bit na znamienko: 0 znamená plus, 1 znamená mínus 5 00000101-5 10000101 Toto zobrazenie sa v praxi používa zriedka, lebo: Sčítačka, ktorá vie sčitovať čísla bez znamienka sa nedá použiť na takéto čísla, treba urobiť zložitejší obvod existuje v ňom kladná aj záporná nula

Celé čísla so znamienkom Dvojkový doplnkový kód Zaveďme operáciu ako sčítanie modulo 5, teda a b=(a+b) mod 5, v takejto aritmetike potom platí napríklad: 1 1=2, 1 2=3, 1 3=4, 1 4=0 2 2=4, 2 3=0, 0 0=0 Z modrých rovností vidíme, že pri takejto operácii sa 4 chová ako číslo opačné k 1, teda 4 sa chová ako -1 a podobne 3 sa chová ako -2 a 0 je opačná sama k sebe. Vo všeobecnosti číslo (5-x) mod 5 sa chová vzhľadom k operácii ako číslo opačné k x. N- bitová sčítačka počítača počíta na N dvojkových miest - to je aritmetika modulo 2 N. Ak teda zobrazíme -1 ako 2 n -1, -2 ako 2 n -2 atď., tak nemusíme vôbec meniť sčítačku - bude vedieť sčitovať kladné aj záporné čísla

Celé čísla so znamienkom Dvojkový doplnkový kód (2) Príklad: ako je zobrazené číslo -10 v dvojkovom doplnkovom kóde na 8 bitov? Postup 1: -10 bude v 8 bitoch zobrazené ako 2 8-10=256-10=246. Preveďme teda 246 do dvojkovej sústavy: 246 10 =11110110 2 =F6 16 Skúška správnosti 00001010 (zobrazuje 10) +11110110 (zobrazuje -10) 00000000 vyšlo nám to: 10+(-10)=0 Postup 2: pravidlo: číslo zmeníme na opačné tak, že v jeho dvojkovom zápise zameníme nuly za jedničky a jedničky za nuly a potom ešte pripočítame 1 10 10 =00001010 2 11110101 (zameníme 0 a 1) +00000001 (pripočítame 1) 11110110 (toto je -10) Je to najpoužívanejší kód pre kódovanie celých čísiel v súčasných procesoroch

Celé čísla so znamienkom Dvojkový doplnkový kód (3) Na sčítanie a odčítanie možno použiť rovnaký hardware ako pre čísla bez znamienka Pre násobenie a delenie ale treba vedieť, či sú čísla bez znamienka alebo so znamienkom (výsledok násobenia sa vždy zapisuje do dvojnásobného počtu bitov): Neznamienkovo: 05*FF=5*255=1275=04FB Znamienkovo: 05*FF=5*(-1)=-5=FFFB Aj pri porovnaniach treba vedieť, či ide o čísla so znamienkom alebo bez znamienka: Neznamienkovo: 05 < FF lebo 5 < 255 Znamienkovo: 05 > FF lebo 5 > -1

Celé čísla so znamienkom Kód posunutej nuly Číslo x zobrazíme ako x+s kde S je pevne dané číslo. Napríklad pre 8 bitov a S=127 dostaneme takéto kódovanie (nazývané aj excess 127 ): číslo zobrazené dvojkovo -127 0 00000000-126 1 00000001... -1 126 01111110 0 127 01111111 1 128 10000000 2 129 10000001... 127 254 11111110 128 255 11111111 Výhodou je, že pre porovnávanie zakódovaných čísiel netreba vedieť ich kódovanie (menšie čísla sa zobrazia do menších, väčšie do väčších) Používa sa pre špeciálne účely (napr. exponent čísla v pohyblivej čiarke)

Reálne čísla Zobrazenie s pevnou čiarkou V dvojkovej sústave sa dajú zobraziť aj necelé čísla rovnako ako v desiatkovej sústave: 12.35 10 = 1*10 1 +2*10 0 +3*10-1 +5*10-2 1001.101 2 =2 3 +2 0 +2-1 +2-3 =8+1+0.5+0.125=9.625 10 V N bitoch teda môžeme zobraziť čísla, s pevnou čiarkou tak, že prvých K cifier zľava je pred desatinnou čiarkou a zvyšok je za ňou (K<=N). 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 Napríklad N=16, K=8 Tu je desatinná čiarka (ale ako programátor píšem všade inde bodku namiesto čiarky) Takéto čísla sa sčitujú a odčitujú rovnako ako celé čísla, ale násobenie a delenie je iné Majú malý rozsah zobraziteľných hodnôt, preto sú nevhodné na vedecké výpočty Majú menej problémov so zaokrúhľovaním, preto sa niekedy používajú na výpočty s peniazmi, kde malý rozsah až tak nevadí

Reálne čísla Zobrazenie s pevnou čiarkou (2) Príklad 1 Zobrazte 2.375 v tvare čísla s pevnou čiarkou v 8 bitoch, kde 4 bity sú pred čiarkou a 4 za ňou. 2.375 10 = 2+0.25+0.125 = 2+1/4+1/8 = 2 1 +2-2 +2-3 = 10.011 2, zapísané do 8 bitov: 00100110 Príklad 2 Aké číslo s pevnou čiarkou je zobrazené v 8 bitovom zápise 01011010 s 3 bitmi pred desatinnou čiarkou a 5 bitmi za ňou? 01011010 10.1101 2 =2 1 +2-1 +2-2 +2-4 =2+1/2+1/4+1/16= 2+0.5+0.25+0.0625=2.8125 10

Reálne čísla Zobrazenie s pohyblivou čiarkou Hmotnosť slnka je asi 2*10 33 g, hmotnosť elektrónu je asi 9*10-28 g. Rozdiel medzi nimi je 61 desiatkových rádov, čo je asi 202 dvojkových rádov. Teda na fyzikálny výpočet s oboma týmito číslami v pevnej rádovej čiarke by sme potrebovali aspoň 202 bitové čísla. Pritom ale takú veľkú presnosť vôbec nevyužijeme lebo obe čísla poznáme s presnosťou ledva 5 cifier. Preto sa pri vedeckých výpočtoch používa zápis čísla v pohyblivej rádovej čiarke, nazývaný tiež semilogaritmický tvar alebo vedecká notácia. Kalkulačky používajú takýto zápis so základom 10. Teda 2308 zapíšu ako 2.308E3 čo znamená 2.308*10 3 2308 sa ale dá zapísať aj ako 23.08*10 2 alebo 0.002308*10 6. Prednosť má ale zápis 2.308*10 3, ktorý má pred desatinnou bodkou práve jednu nenulovú cifru. Nazývame to normalizovaný tvar čísla. V počítačoch sa používa základ 2, teda čísla sa zapisujú v tvare a*2 b, teda treba uložiť dve čísla a a b, obe môžu byť kladné aj záporné.

Reálne čísla Zobrazenie s pohyblivou čiarkou (2) Norma IEEE 754 - najrozšírenejší tvar čísla v pohyblivej rádovej čiarke. Procesory Intel používajú tento tvar (ale pridávajú si ďalší vlastný typ). Normalizované číslo má pred desatinnou bodkou nenulovú cifru, v dvojkovej sústave jediná nenulová cifra je 1. Preto si ju nemusíme pamätať a ušetríme jeden bit mantisy. Binary32 (single precision): 1 bit znamienko mantisy, 8 bitov exponent v kóde "excess 127" a 23 bitov absolútna hodnota mantisy bez prvej jednotky, teda s pevnou rádovou čiarkou pred prvou cifrou. 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 znamienko mantisy je + (0 je +, 1 je -) exponent v kóde "excess 127" 01111100 2 =124 teda zobrazuje číslo 124-127=-3 Mantisa bez prvej jednotky, celá mantisa je teda 1.01 =+1.01 2 *2-3 =1.25*2-3 =1.25*0.125= =0.15625

Reálne čísla Zobrazenie s pohyblivou čiarkou (3) Ďalšie typy podľa IEEE-754: Binary16 (half precision): 1 bit znamienko mantisy, 5 bitov exponent v kóde "excess 15" a 10 bitov absolútna hodnota mantisy bez prvej jednotky, teda s pevnou rádovou čiarkou pred prvou cifrou. Tento formát je určený len na ukladanie do pamäti, nie na vykonávanie výpočtov. Binary64 (double precision): 1 bit znamienko mantisy, 11 bitov exponent v kóde "excess 1023" a 52 bitov absolútna hodnota mantisy bez prvej jednotky. Binary128 (quadruple precision): 1 bit znamienko mantisy, 15 bitov exponent v kóde "excess 16383" a 112 bitov absolútna hodnota mantisy bez prvej jednotky.

Reálne čísla Zobrazenie s pohyblivou čiarkou (4) Najmenšia a najväčšia hodnota exponentu sa nepoužíva pre normalizované čísla. Napr. v binary32 môže byť exponent len od -126 po +127, hodnoty exponentu -127 (kód 0) a +128 (kód FF) sú rezervované pre špeciálne čísla: Denormalizované číslo má exponent -127 (kód 0) a k mantise nie je pridávaná prvá jednotka - tak možno zobraziť čísla blízko nuly až do 2-149 za cenu znižujúcej sa presnosti Nula má exponent -127 (kód 0) a mantisu 0, znamienko môže byť + aj - Plus nekonečno má znamienko +, exponent 128 (kód FF), mantisu 0 Mínus nekonečno má znamienko -, exponent 128 (kód FF) a mantisu 0 Not a Number (NaN) má znamienko ľubovoľné, exponent 128 (kód FF) a mantisu nenulovú špeciálne hodnoty sa používajú aj pri výpočtoch, napríklad 1/0 je plus nekonečno, nekonečno deleno nekonečno je NaN a pod. (exponenty -127 a 128 platia pre binary32, pre binary64 sú -1023 a 1024, pre binary16 sú -15 a 16 a pre binary128 sú -16383 a 16384)

Reálne čísla Zobrazenie s pohyblivou čiarkou (4) Zhrnutie špeciálnych formátov v obrázku Ďalšie informácie nájdete napr. na http://en.wikipedia.org/wiki/ieee_floating_point

Rozsahy čísiel podľa IEEE-754 presnosť Typ Rozsah (des. cif.) bajtov binary16 6.1 x 10-5.. 6.5 x 10 4 3-4 2 binary32 1.5 x 10-45.. 3.4 x 10 38 7-8 4 binary64 5.0 x 10-324.. 1.7 x 10 308 15-16 8 binary1286.4 x 10-4966.. 1.2 x 10 4932 34 16

Čísla v Pythone import sys def tryinteger(n): x = 1 print(sys.getsizeof(x)) for i in range(n): x = x*10 print(i,x) print(sys.getsizeof(x)) def tryreal(n): x = 1.0 print(sys.getsizeof(x)) for i in range(n): x = x*10.0 print(i,x) print(sys.getsizeof(x)) Nájdite rozdiel medzi funkciami tryinteger a tryreal. Vysvetlite nájdený rozdiel. Skúste: tryinteger(400) tryreal(400) Na základe pokusu odpovedzte na otázky: Ako je v Pythone uložené celé číslo? Ktorý tvar reálneho čísla podľa IEEE-754 zrejme používa Python pre reálne čísla?

Kompaktné pole v Pythone Modul array umožňuje definovať kompaktné číselné pole. Na rozdiel od zoznamov (typ list) každý prvok poľa obsahuje číslo dopredu presne stanovenej veľkosti a typu. Môžeme si na ňom ukázať prácu s obmedzene veľkými číslami >>> import array >>> a = array.array('b', [2,3,5,7,11,13,17]) >>> a array('b', [2, 3, 5, 7, 11, 13, 17]) >>> a = a + a >>> a array('b', [2, 3, 5, 7, 11, 13, 17, 2, 3, 5, 7, 11, 13, 17]) >>> b = array.array('b', [1]*9) >>> b array('b', [1, 1, 1, 1, 1, 1, 1, 1, 1]) >>> for i in range(1,len(b)): b[i] = 2*b[i-1]... OverflowError: unsigned byte integer is greater than maximum >>> b array('b', [1, 2, 4, 8, 16, 32, 64, 128, 1]) >>> Ukážka je z prednášok ADŠ v roku 2014/15, autor: Andrej Blaho

Kompaktné pole v Pythone kódy a typy kód bajtov bitov znamienko C-typ Python-typ 'b' 1 8 áno signed char int 'B' 1 8 nie unsigned char int 'h' 2 16 áno signed short int 'H' 2 16 nie unsigned short int 'i' 2 / 4 16 / 32 áno signed int int 'I' 2 / 4 16 / 32 nie unsigned int int 'l' 4 32 áno signed long int 'L' 4 32 nie unsigned long int 'q' 8 64 áno signed long long int 'Q' 8 64 nie unsigned long long int 'f' 4 32 float float 'd' 8 64 double float Veľkosť typov 'i' a 'I' závisí od toho, akým kompilátorom jazyka C bol preložený použitý interpreter jazyka Python.

Celočíselné typy v C Keď nám nezáleží na presnom zobrazení čísla, tak používame typy: int, ak chceme číslo so znamienkom alebo unsigned int, ak chceme číslo bez znamienka Ak ale záleží na presnom zobrazení, tak máme k dispozícii tieto typy (tabuľka udáva ich minimálnu veľkosť, definícia jazyka umožňuje niektoré typy implementovať aj na viac bitov): Bajtov Bitov Identifikátor typu Minimum Maximum char 1 8So znamienkom signed char -128 127 1 8Bez znamienka unsigned char 0 255 2 short 16So znamienkom signed short -32 768 32 767 2 16Bez znamienka unsigned short 0 65 535 4 long 32So znamienkom signed long -2 147 483 648 2 147 483 647 4 32Bez znamienka unsigned long 0 4 294 967 297 8 long long 64So znamienkom signed long long -9 223 372 036 854 775 808 9 223 372 036 854 775 807 8 64Bez znamienka unsigned long long 0 18 446 744 073 709 551 615 Ďalšie informácie napríklad na: http://en.wikipedia.org/wiki/c_data_types

Celočíselné typy v C (2) Pozor na použitie neznamienkových čísiel v cykloch typu while a repeat: unsigned char i; i = 10; while (i >= 0) { printf("%d\n",i); --i; } hraničná hodnota pre daný typ: signed char i; i = 0; while (i <= 127) { printf("%d\n",i); ++i; } Zacyklí sa lebo pre ľubovoľné i typu unsigned char platí i>=0 Pozor aj na použitie malých čísiel v cykloch keď hranica cyklu je zároveň V C nám nepomôže ani cyklus for, lebo ten je len skratkou pre while: Čo bude robiť tento program? signed char i; for (i = 120; i <= 127; i++) printf("%d\n",i);

Reálne typy v C FPU (floating point unit - aritmeticko-logická jednotka pre pohyblivú rádovú čiarku) procesorov Pentium ponúka reálne čísla single precision, double precision a extended precision. Single a double sú definované ako v norme IEEE 754, extended je špeciálny typ procesorov Intel - nepoužíva rozšírenie o jeden bit mantisy, teda ukladá aj prvú jednotku mantisy. Typ Rozsah presnosť (des. cifier) bajtov bitov float 1.5 x 10-45.. 3.4 x 10 38 7-8 4 32 double 5.0 x 10-324.. 1.7 x 10 308 15-16 8 64 long double 3.6 x 10-4951(-4966).. 1.1 x 10 4932 19-20 (33-36) 10(16) 80(128) Typ long double môže byť implementovaný pomocou typu extended precision v CPU Intel alebo ako binary128 podľa IEEE 754 (potom platia údaje v zátvorkách). Ak nie je možná žiadna implementácia presnejšia než double, tak je implementovaný rovnako ako double.

Celočíselné typy v Pascale (Lazaruse, Delphi) Keď nám nezáleží na presnom zobrazení čísla, tak používame typy: Integer, ak chceme číslo so znamienkom alebo Cardinal, ak chceme číslo bez znamienka Ak ale záleží na presnom zobrazení, tak máme k dispozícii tieto typy: Identifikátor typu Minimum Maximum 1 Bajt 8 bitov So znamienkom ShortInt -128 127 1 Bajt 8 bitov Bez znamienka Byte 0 255 2 Bajty 16 bitov So znamienkom SmallInt -32 768 32 767 2 Bajty 4 Bajty 16 bitov Bez znamienka Word 32 bitov So znamienkom LongInt 0-2 147 483 648 65 535 2 147 483 647 4 Bajty 32 bitov Bez znamienka LongWord 0 4 294 967 297 8 Bajtov 64 bitov So znamienkom Int64-9 223 372 036 854 775 808 9 223 372 036 854 775 807 8 Bajtov 64 bitov Bez znamienka QWord,UInt64 0 18 446 744 073 709 551 615 Integer znamená LongInt (len v prípade nastavenia "Free Pascal mode" v Lazaruse je to SmallInt) a Cardinal znamená LongWord. 64-bitov bez znamienka je QWord v Lazaruse, ale UInt64 v Delphi V Delphi je aj typ NativeInt, v 32-bitovej aplikácii je to LongInt, v 64-bitovej aplikácii je to Int64.

Celočíselné typy v Pascale (Lazaruse, Delphi) Pozor na použitie neznamienkových čísiel v cykloch typu while a repeat: var i:byte; begin i:=10; while i >= 0 do i:=i-1; end; hraničná hodnota pre daný typ: var i:shortint; begin i:=100; while i<=127 do i:=i+1; end; Pri zapnutom range checking tento program skončí s chybou (-1 sa nedá zobraziť do premennej typu Byte) Ale pri vypnutom range checking sa zacyklí lebo pre ľubovoľné i typu Byte platí i>=0 Pozor aj na použitie malých čísiel v cykloch keď hranica cyklu je zároveň Cyklus for v Pascale ale pracuje správne (lebo je inak definovaný ako v C): Čo bude robiť tento program? var i:shortint; begin for i:=0 to 127 do writeln(i); end;

Reálne typy v Lazaruse a Delphi FPU (floating point unit - aritmeticko-logická jednotka pre pohyblivú rádovú čiarku) procesorov Pentium ponúka reálne čísla single precision, double precision a extended precision. Single a double sú definované ako v norme IEEE 754, extended je špeciálny typ procesorov Intel - nepoužíva rozšírenie o jeden bit mantisy, teda ukladá aj prvú jednotku mantisy. Okrem toho vie FPU pracovať aj so 64-bitovým celým číslom (typ Comp), preto ho Delphi zaraďuje medzi Reálne typy Delphi aj Lazarus ponúka ešte aj Real48, ktorý sa používal v Turbo Pascale (v nových programoch ho nepoužívajte) a typ Currency - reálne číslo s pevnou čiarkou. Typ Rozsah presnosť (des. cifier) bajtov bitov Real48 2.9 x 10^-39.. 1.7 x 10^38 11-12 6 48 Single 1.5 x 10^-45.. 3.4 x 10^38 7-8 4 32 Double 5.0 x 10^-324.. 1.7 x 10^308 15-16 8 64 Extended 3.6 x 10^-4951.. 1.1 x 10^4932 19-20 10 80-9223372036854775808.. Comp 9223372036854775807-922337203685477.5808.. 19-20 8 64 Currency 922337203685477.5807 19-20 8 64 V Delphi a v Lazaruse pre procesory Intel je typ Real zhodný s Double