Biblioteca
Tutora
BibliotecaInformatică și TIC › clasa a IX-a

Reprezentarea informației în calculator

Studiul sistemelor de numerație și al reprezentării datelor numerice și nenumerice în memoria calculatorului.

Bacalaureat

Sisteme de numerație: aceeași valoare, scrieri diferite

Un sistem de numerație pozițional scrie numerele folosind cifre a căror valoare depinde de poziția lor. Sistemul obișnuit are baza 10 (cifre 0–9): 273 înseamnă 2·100 + 7·10 + 3·1 — fiecare poziție valorează o putere a bazei.

Calculatorul lucrează în baza 2 (binar), cu doar două cifre, 0 și 1 — pentru că circuitele disting sigur două stări electrice. Numărul binar 1011 înseamnă 1·8 + 0·4 + 1·2 + 1·1 = 11 în zecimal.

Pe lângă ele se folosesc baza 8 (octal), cu cifrele 0–7, și mai ales baza 16 (hexazecimal), cu cifrele 0–9 și literele A–F, unde A = 10, B = 11, ..., F = 15. Hexazecimalul e comod ca stenografie a binarului: fiecare cifră hexa corespunde exact la 4 biți, deci un octet se scrie cu fix două cifre hexa (de la 00 la FF). Codurile de culoare din paginile web (de exemplu FF0000 pentru roșu) sunt exact astfel de perechi de cifre hexa.

Regula generală de citire a unui număr scris în baza b: cifrele, de la dreapta la stânga, se înmulțesc cu puterile crescătoare ale lui b (b la puterea 0, 1, 2, ...) și se adună. O verificare rapidă de bun-simț: într-o bază b pot apărea doar cifre strict mai mici decât b — scrierea 182 nu poate fi un număr în baza 8, pentru că cifra 8 nu există acolo.

Conversii între baze — cele două sensuri

Din baza b în baza 10: înmulțești cifrele cu puterile bazei și aduni. Exemplu: 1101 din baza 2 = 1·8 + 1·4 + 0·2 + 1·1 = 13; 2F din baza 16 = 2·16 + 15 = 47.

Din baza 10 în baza b: împărțiri repetate la b, reținând resturile; numărul în baza b este șirul resturilor citit de la ultimul către primul. Exemplu, 25 în binar: 25:2 = 12 rest 1; 12:2 = 6 rest 0; 6:2 = 3 rest 0; 3:2 = 1 rest 1; 1:2 = 0 rest 1 → citit invers: 11001. Greșeala tipică este citirea resturilor în ordinea obținerii (10011) — verifică mereu prin conversia inversă: 11001 = 16 + 8 + 1 = 25, corect.

Între binar și hexazecimal conversia e directă, fără trecere prin baza 10: grupezi biții câte 4, de la dreapta, și înlocuiești fiecare grup cu cifra hexa corespunzătoare. 10111110 → 1011 | 1110 → B | E → BE. Invers, fiecare cifră hexa se desface în 4 biți. Aceeași idee leagă binarul de octal, cu grupe de 3 biți.

Merită memorate reprezentările binare ale numerelor 0–15 (0000 – 1111) și puterile lui 2 până la 1024 — cu ele, majoritatea conversiilor de examen se fac din priviri, fără calcule lungi.

Aritmetică în baza 2

Adunarea binară folosește doar patru reguli: 0+0 = 0; 0+1 = 1; 1+0 = 1; și regula-cheie 1+1 = 10 — adică cifra 0 și transport (carry) 1 către poziția următoare. Iar 1+1+1 (cu transport) = 11: cifra 1 și transport 1.

Exemplu complet, 1011 + 110 (adică 11 + 6):

Rezultat: 10001 = 17 în zecimal — verificarea în baza 10 (11 + 6 = 17) confirmă calculul, obicei care previne majoritatea greșelilor.

Două trucuri cu valoare de examen:

Aceste proprietăți leagă direct reprezentarea binară de algoritmii cu cifre și puteri ale lui 2 din subiectele de bacalaureat.

Cum stau în memorie numerele întregi și reale

Memoria alocă fiecărei valori un număr fix de biți, iar de aici decurg limitele tipurilor de date.

Întregii fără semn pe n biți acoperă intervalul de la 0 la 2 la puterea n minus 1: pe 8 biți, 0–255; pe 16 biți, 0–65535; pe 32 de biți, 0–4.294.967.295.

Întregii cu semn sacrifică un bit pentru semn și folosesc reprezentarea prin complement față de 2; pe n biți acoperă de la -2 la puterea n-1 până la 2 la puterea n-1 minus 1: pe 8 biți, de la -128 la 127; pe 32 de biți, aproximativ ±2,1 miliarde — limita tipului int din C++, de care se lovesc programele care calculează factoriale sau sume mari. Depășirea acestei limite (overflow) nu dă eroare la rulare: rezultatul se strâmbă pur și simplu, deseori devenind negativ — o sursă clasică de rezultate aberante.

Numerele reale se memorează în virgulă mobilă (standard IEEE 754): un semn, o mantisă și un exponent — în esență, notația științifică în baza 2. Consecința practică importantă: majoritatea zecimalelor nu se reprezintă exact (0.1 în binar este o fracție periodică infinită), deci calculele cu reali produc mici erori de rotunjire. De aceea compararea a două valori reale cu == este nesigură: corect se compară dacă diferența lor, în modul, e mai mică decât o toleranță aleasă (de exemplu 0.000001).

Texte, imagini și sunete — totul devine numere

Caracterele se reprezintă prin coduri numerice. Codul ASCII folosește 7 biți (extins la un octet) pentru 128 de caractere: litere mari și mici englezești, cifre, semne de punctuație, caractere de control. Detaliile utile la probleme: literele mari A–Z ocupă coduri consecutive (A = 65, B = 66, ...), la fel literele mici (a = 97), iar diferența dintre o literă mică și perechea ei mare este constantă, 32 — pe această proprietate se bazează algoritmii de transformare majuscule/minuscule. Cifrele ca simboluri au codurile 48–57: caracterul cifră se transformă în valoarea numerică scăzând codul lui 0.

Pentru celelalte alfabete și simboluri ale lumii — diacritice românești incluse — există Unicode, care atribuie fiecărui caracter un cod unic, memorat de regulă în codificarea UTF-8, compatibilă cu ASCII pe primele 128 de coduri.

Imaginile raster sunt grile de pixeli; fiecare pixel color ține de obicei trei componente RGB a câte un octet (16,7 milioane de culori posibile). O imagine de 1920×1080 necomprimată ocupă circa 6 MB — de aceea există formate comprimate (JPEG, PNG).

Sunetul devine numere prin eșantionare: amplitudinea semnalului se măsoară de mii de ori pe secundă (44.100 de eșantioane/s la calitate CD), iar fiecare măsurătoare se memorează pe un număr fix de biți. Concluzia întregului capitol: orice informație — text, imagine, sunet — se reduce în memorie la șiruri de biți; doar interpretarea lor diferă.

De reținut

sistem de numerație pozițional
sistem în care valoarea unei cifre depinde de poziția ei: fiecare poziție reprezintă o putere a bazei, crescătoare de la dreapta la stânga
sistem binar
sistemul de numerație în baza 2, cu cifrele 0 și 1, folosit de calculator pentru că circuitele disting sigur două stări
sistem hexazecimal
sistemul în baza 16, cu cifrele 0–9 și literele A–F (A = 10, ..., F = 15); o cifră hexa corespunde exact la 4 biți
conversia din baza 10 în baza b
împărțiri întregi repetate la b; rezultatul este șirul resturilor citit de la ultimul rest către primul
transport (carry)
unitatea trecută la poziția următoare când suma cifrelor depășește baza; în binar, 1 + 1 = 10 înseamnă cifra 0 și transport 1
complement față de 2
reprezentarea standard a întregilor cu semn; pe n biți acoperă intervalul de la -2 la puterea n-1 până la 2 la puterea n-1 minus 1
overflow (depășire)
situația în care rezultatul unui calcul nu mai încape în numărul de biți al tipului; valoarea se denaturează fără mesaj de eroare
virgulă mobilă
reprezentarea numerelor reale prin semn, mantisă și exponent; multe zecimale nu se reprezintă exact, de unde erorile de rotunjire
cod ASCII
codificare pe un octet a caracterelor de bază; literele au coduri consecutive (A = 65, a = 97), iar cifrele încep de la 48
pixel
punctul elementar al unei imagini raster; culoarea lui se memorează de regulă prin trei componente RGB a câte un octet

Greșeli frecvente

Greșit: La conversia zecimal → binar, resturile s-ar citi în ordinea în care au fost obținute
Corect: Resturile se citesc invers, de la ultimul spre primul: 25 dă resturile 1,0,0,1,1, deci 11001, nu 10011; verificarea prin conversia inversă previne eroarea
Greșit: În binar, 1 + 1 ar face 2
Corect: Cifra 2 nu există în baza 2: 1 + 1 = 10, adică 0 pe poziția curentă și transport 1 la poziția următoare; uitarea transportului strică toate adunările binare
Greșit: Scrierea 182 ar putea reprezenta un număr în baza 8
Corect: Într-o bază b apar doar cifre strict mai mici decât b; cifra 8 nu există în baza 8, deci scrierea e invalidă — verificarea cifrelor e primul pas la orice item cu baze
Greșit: Tipul int ar putea memora orice număr întreg, oricât de mare
Corect: int pe 32 de biți acoperă aproximativ ±2,1 miliarde; peste această limită apare overflow, iar rezultatul se denaturează silențios — pentru valori mai mari se folosește long long
Greșit: Două numere reale calculate pe căi diferite s-ar compara sigur cu ==
Corect: Reprezentarea în virgulă mobilă introduce erori de rotunjire (0.1 + 0.2 nu dă exact 0.3); realele se compară verificând dacă modulul diferenței este sub o toleranță mică

Test — 6 întrebări ca la examen

1. Ce valoare zecimală are numărul binar 10110?
  1. 22
  2. 26
  3. 11
  4. 38
Vezi răspunsul
22. 10110 = 16 + 4 + 2 = 22. Varianta 11 corespunde citirii lui 1011 (fără ultimul 0) — atenție la toate cifrele; 26 apare când se greșește o putere a lui 2, de aceea merită scrise puterile sub fiecare cifră.
2. Numărul 45 scris în baza 2 este:
  1. 101101
  2. 110100
  3. 101011
  4. 111001
Vezi răspunsul
101101. 45 = 32 + 8 + 4 + 1 = 101101; verificare prin împărțiri repetate: resturile 1,0,1,1,0,1 citite invers. Varianta 101011 este capcana citirii resturilor în ordinea obținerii, iar 110100 este 52 — o putere greșită.
3. Cifra F din sistemul hexazecimal are valoarea zecimală:
  1. 16
  2. 15
  3. 6
  4. 10
Vezi răspunsul
15. Literele merg de la A = 10 la F = 15. Varianta 16 e capcana frecventă: 16 este baza însăși, care se scrie 10 în hexazecimal — cea mai mare cifră a oricărei baze b este b - 1.
4. Numărul binar 11111111 (opt cifre de 1) are valoarea zecimală:
  1. 256
  2. 255
  3. 128
  4. 8
Vezi răspunsul
255. Opt cifre de 1 valorează 2 la puterea 8 minus 1 = 255 — maximul unui octet fără semn. Varianta 256 uită scăderea lui 1 (256 = 100000000, nouă cifre), iar 128 este doar bitul cel mai semnificativ, nu suma tuturor.
5. Suma binară 1011 + 101 are rezultatul:
  1. 1110
  2. 10000
  3. 1111
  4. 10110
Vezi răspunsul
10000. 11 + 5 = 16 = 10000 în binar; transporturile se propagă în lanț: 1+1 = 0 transport 1, 1+0+1 = 0 transport 1, 0+1+1 = 0 transport 1, 1+1 = 10. Varianta 1110 pierde exact primul transport — greșeala standard la adunările cu lanț de carry.
6. Caracterul A are codul ASCII 65. Ce cod are caracterul a?
  1. 66
  2. 95
  3. 97
  4. 64
Vezi răspunsul
97. Literele mici sunt decalate cu 32 față de cele mari: 65 + 32 = 97. Varianta 66 este codul lui B (următoarea literă mare) — confuzia dintre consecutivitatea literelor și decalajul mare/mică, exact proprietățile pe care se sprijină algoritmii de conversie a caselor.
Deschide varianta interactivă — cu AI care îți explică
← Rețele de calculatoare și InternetEditoare de texte →
BiologieChimieEconomieFilosofieFizicăGeografieInformatică și TICIstorieLogică și argumentareMatematicăPsihologieLimba și literatura română