Friday, April 19, 2024 15:37

Cuprins >> Introducere > De ce folosim numere hexazecimale?

De ce folosim numere hexazecimale?

În unele cazuri, veți întâlni programatori care reprezintă valori zecimale sau binare folosind numere hexazecimale. De ce acest lucru?

Ei bine, din moment ce știm acum din lecțiile anterioare cum să numărăm atât în binar cât și în hexazecimal, să vedem cum corespund câteva dintre aceste numere:

numbere zecimale, hexazecimale, binare

Dacă priviți cu atenție relația de mai sus, veți observa rapid că valoarea maximă pe care o cifră hexazecimală o poate stoca este egală cu exact valoarea maximă pe care 4 biți o pot stoca. Cu alte cuvinte, o cifră hexazecimală poate reprezenta în mod exact exact 4 cifre binare. Acum, să considerăm că vrem să vedem cum este stocat un număr ca valoare binară în RAM. Să luăm numărul 2.047.483.647:

Puteți începe deja să vedeți că vizualizarea acestuia ca valori binare este extrem de dificilă: 31 de biți de date și un bit pentru semn. Pe de altă parte, întrucât o cifră hexazecimală poate reprezenta 4 biți, asta înseamnă că putem reprezenta un byte (8 biți) folosind doar 2 cifre hexazecimale, în loc de 8 biți separați. Din acest motiv, toți cei 32 de biți care reprezintă 0111 1010 0000 1010 0001 1110 1111 1111 în binar sunt acum mult mai ușor de citit și de înțeles atunci când îi vedem ca o valoare hexazecimală reprezentând 7A0A1EFF. Și este chiar logic: 8 cifre hexazecimale înmulțite cu 4 cifre binare per cifră hexazecimală este egal cu 32 de cifre binare, care este exact numărul de biți de care un int are nevoie pentru a fi stocat în RAM.

Probabil, am putea încerca să reprezentăm cei 31 de biți cu valori zecimale, doar că 10 (numărul de valori pe fiecare cifră zecimală) nu se împarte cu nici o putere a lui 2, nici 4 și nici 8. Ceea ce înseamnă că nu putem folosi o cifră zecimală pentru a reprezenta un byte (8 biți) sau jumătate din acesta (4 biți). Pe de altă parte, deoarece cifrele hexazecimale pot stoca 16 valori, de la 0 la F, ele pot fi utilizate pentru a stoca 2 octeți pentru fiecare cifră, deoarece 16 poate fi împărțit la 8, care este numărul de biți pe care îi are un octet.

Deci, ca rezumat, motivul pentru care unii programatori folosesc valori hexazecimale pentru valorile lor întregi este faptul că folosesc de fapt un mod convenabil de a vedea biții exact cum sunt stocați în memorie pentru acel număr întreg. Și, trebuie să fiți de acord, pentru numere întregi de 32+ biți, riscul de greșeli cu 4294967295 este mult mai mare decât cu 0xFFFFFFFF.

Când vom discuta despre enumerări, vom vedea cât de ușor este să manipulăm biții individuali dintr-un tip de date mai mare, folosind valori hexazecimale.

Tags: ,

Leave a Reply



Follow the white rabbit