Documente Academic
Documente Profesional
Documente Cultură
Metoda noastr pentru scrierea numerelor se bazeaz pe puterile lui 10. De exemplu, fie numrul 2468. 2 reprezint 2 mii, 4 reprezint 4 sute, 6 reprezint 6 zeci iar 8 reprezint 8 uniti: 2468 = 2 1000 + 4 100 + 6 10 + 8 1 O mie este 10*10*10, ceea ce poate fi scris 103, sau 10 la puterea a treia. Utiliznd aceast notaie, putem scrie relaia precedent astfel: 2468 = 2 103 + 4 102 + 6 101 + 8 100 Deoarece notaia este bazat pe puterile lui 10, o denumim notaie n baza 10 sau zecimal. Oricine poate alege un alt numr ca baz. n C++ vi se permite s notai numerele ntregi i n baza 8 (octal) sau n baza 16 (hexazecimal). (Observaie: 100 este 1, ca de altfel orice alt numr diferit de zero, ridicat la puterea zero.)
ntregi octali Numerele octale sunt bazate pe puterile lui 8, deci notaia n baza 8 folosete pentru scrierea numerelor cifrele 07. C++ folosete prefixul 0 pentru a indica notaia octal. Prin urmare 0177 este o valoare octal. Pentru a gsi echivalentul n baza 10 folosii puterile lui 8: 0177 (octal) = 1 82+7 81+7 80 = 1 64+7 8+7 1 = 127 (zecimal) Motivul pentru care C++ i C permit notaia octal este c n sistemul de operare UNIX valorile sunt adesea reprezentate n octal.
Numere hexazecimale
Numerele hexazecimale sunt bazate pe puterile lui 16. Adic 10 hexazecimal este 16+0 adic 16. Pentru a reprezenta valorile ntre 9 i 16 n hexazecimal este nevoie de cteva cifre n plus. Notaia hexazecimal standard folosete pentru aceste cifre literele af. C++ accept att majuscule ct i litere mici pentru aceste notaii, dup cum vedei i n Tabelul A.1.
Tabelul A.1 Cifrele hexazecimale. Cifr hexazecimal Valoare zecimal Cifr hexazecimal
Pentru a indica o notaie hexazecimal n C++ se folosesc ca prefici 0x sau 0X. Prin urmare, 0x2B3 este o valoare hexazecimal. Pentru a gsi valoarea zecimal echivalent, evaluai puterile lui 16: 0x2B3 (hexa) = 2 162+11 161+3 160 = 2 256+11 16+3 1 = 691 (zecimal) Documentaiile hardware folosesc n mod curent notaii hexazecimale pentru valorile unor locaii de memorie i pentru porturi.
Numere binare Chiar dac folosii notaii zecimale, octale sau hexazecimale pentru a scrie un ntreg, calculatorul l va stoca n valoare binar, sau n baza 2. n notaie binar se folosesc doar dou cifre, 0 i 1. De exemplu 10011011 este un numr binar. Totui, C++ nu furnizeaz o notaie binar. Numerele binare se bazeaz pe puterile lui 2:
10011011
+0 22+1 21+1 20
Notaia binar se potrivete memoriei unui calculator, n care fiecare element, care se numete bit, poate fi activ sau inactiv. Trebuie doar s identificai starea inactiv cu 0, iar cea activ cu 1. Memoria este organizat de obicei n grupuri de bii, care se numesc octei, fiecare octet avnd 8 bii. Biii ntr-un octet sunt numerotai dup puterile lui 2 corespunztoare. Astfel, cel mai din dreapta este bitul 0, urmtorul este bitul 1, i aa mai departe. n Figura A.1 v este prezentat un ntreg pe doi octei.
numrul bitului 15 14 13 12 11 10 0 0 0 0 1 0 9 0 8 1 7 0 6 0 5 1 4 0 3 0 2 0 1 1 0 0
valoare = 1 211 + 1 28 + 1 25 + 1 21 = 2048 + 256 + 32 + 2 = 2338 Figura A.1 O valoare ntreag reprezentat pe doi octei.
Binar i hexa Notaia hexa este folosit adesea pentru a vizualiza mai comod datele binare, cum ar fi adresele de memorie sau ntregii care pstreaz setrile biilor indicatori. Acest lucru este posibil deoarece fiecare cifr hexazecimal corespunde unei uniti formate din patru bii. n Tabelul A.2 v este prezentat aceast coresponden.
Tabelul A.2 Cifrele hexazecimale i echivalenii binari. Cifr hexazecimal Echivalent binar Cifr hexazecimal
Echivalent binar
0 1 2 3 4 5 6 7
8 9 A B C D E F
Pentru a converti o valoare hexa n binar, nlocuii fiecare cifr hexa cu setul de bii echivalent. De exemplu, numrul hexa 0xA4 corespunde binarului 1010 0100. n mod analog, putei converti cu uurin o valoare binar n notaie hexa convertind fiecare unitate de patru bii n cifra hexa echivalent. De exemplu, valoarea binar 1001 0101 devine 0x95.