08 Reprezentarea datelor în memorie

Indiferent de tipul de memorie în care se află, o dată este un container de informație. Microprocesorul extrage date și instrucțiuni din memorie, le prelucrează și depune înapoi rezultatul. Oricât de complexe ar fi datele, non-primitive, ajung în final transformate prin operațiunea de compilare în date simple, primitive adică numere până la nivelul codului mașină unde avem unitatea fundamentală de măsură a informației denumită bit. Un bit este denumirea engleză a numărului binar (binary digit).

Figură 1 Date complexe și primitive

Indiferent de complexitatea lor toate datele ajung după compilare biți adică sunt traduse în codul mașină executabil de către procesor. Un bit poate avea doar două valori și anume 0 sau 1.

  • Valoarea 0 (zero) a bit-ului înseamnă că avem un circuit electric care nu conduce curentul electric.
  • Valoarea 1 (unu) a bit-ului înseamnă că avem un circuit electric care conduce curentul electric.

În microprocesor sunt milioane sau chiar miliarde de tranzistoare care au două regimuri de funcționare și anume:

  • Blocat adică are valoarea logică 0 (zero) ce corespunde unui circuit electric care nu conduce curentul electric.
  • Saturat adică are valoarea logică 1 (unu) ce corespunde unui circuit electric care conduce curentul electric.

Dacă doriți să aflați câte miliarde de tranzistoare sunt în anumite procesoare, memorii RAM sau SSD, sau alte componente folosite în tehnologia informației vizitați: https://en.wikipedia.org/wiki/Transistor_count

Figură 2 Număr de tranzistoare în procesoare

Frecvența la procesor reprezintă de câte ori se schimbă regimul de funcționare al tranzistoarelor sale de la blocat la saturat sau invers pe secundă. Teoretic dacă luăm procesorul din imagine CORE i7 care în anul 2018 avea 2 miliarde 600 de milioane de tranzistoare și înmulțim cu 3 GHz adică 3 miliarde de schimbări din blocat sau saturat sau invers ( din saturat în blocat ) obținem: 2,6 miliarde X 3 miliarde adică 7,8 miliarde de biți într-o secundă. Aceasta e doar teoretic deoarece practic există și alte operații pe care le face procesorul cum ar fi memorarea temporară de date sau operații de aducere din memorie și depunerea înapoi a rezultatului, și toate aceste operații cer timp.    

Am aflat până aici că bit-ul este unitatea fundamentală de măsură a informației. Adică binary digit adică număr binar care are valorile 0 sau 1.

UN sistem de numerație este un sistem format din cifre  (simboluri ) cu care se poate forma orice număr. De exemplu sistemul de numerație zecimal pe care-l utilizăm noi oamenii folosește mulțimea de cifre:

{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }.

Cu aceste cifre putem forma orice număr de exemplu 4 294 967 296 este un număr format din aceste cifre.

Computerul în creierul său adică în microprocesor știe doar să deschidă sau să închidă circuite electrice ceea ce înseamnă că folosește doar doi biți adică formează orice număr folosind sistemul de numerație binar:

{ 0, 1 }

iar numărul 00110100001100100011100100110100001110010011011000110111001100100011100100110110 este același număr de mai sus scris în cod binar pentru a fi înțeles de microprocesor.  Codul binar se mai numește cod mașină iar fișierele binare cum ar fi programele executabile sunt fișiere scrise în cod mașină pe care le execută microprocesorul.

Dacă ar fi să numărăm în cod binar ar fi cam așa:

ZecimalBinarobservații
00 
11 
210Nu am voie sa pun 2 pentru ca am doar două cifre 0 și 1 așa că trec la următoarea poziție în stânga așa cum 9+1=10
311 
4100Nu am voie sa pun 2 pentru ca am doar două cifre 0 și 1 așa că trec la următoarea poziție în stânga așa cum 99+1=100
5101 
6110 
7111 
81000Nu am voie sa pun 2 pentru ca am doar două cifre 0 și 1 așa că trec la următoarea poziție în stânga așa cum 999+1=1000
91001 
101010 
tabel 1 Numărare în cod binar față de cel zecimal

Pentru a înțelege mai bine o să transformăm câteva numere zecimale în binar și invers să facem proba. Folosim teorema împărțirii cu rest împărțind repetat și reținând resturile de la ultimul cât către primul rest.

4 în baza 10 cât face în baza 2

4 / 2 = 2 rest 0

2 / 2 = 1 rest 0

Luăm ultimul cât și resturile în ordine 1 0 0 deci 4 din baza 10 este 100 în baza 2. Proba:

0 x 20 + 0 x 21 + 1 x 22 = 0 + 0 + 4 = 4 adică 100 este 4 în baza 10

5 în baza 10 cât face în baza 2?

5 / 2 = 2 rest 1

2 / 2 = 1 rest 0

Luăm resturile de la ultimul cât care este 1 și obținem 101. Proba.

1 x 20 + 0 x 21 + 1 x 22 = 1 + 0 + 4 = 5 adică 101 este 5 din baza 10 scris în baza 2

7 în baza 10 cât face în baza 2?

7 / 2 = 3 rest 1

3 / 2 = 1 rest 1

Luăm resturile de la ultimul cât care este 1 și obținem 111. Proba.

1 x 20 + 1 x 21 + 1 x 22 = 1 + 2 + 4 = 7 adică 111 este 7 din baza 10 în baza 2

21 în baza 10 cât face în baza 2?

21 / 2 = 10 rest 1

10 / 2 = 5 rest 0

5 / 2 = 2 rest 1

2 / 2 = 1 rest 0

Luăm resturile de la ultimul cât care este 1 și obținem 10101. Proba.

1 x 20 + 0 x 21 + 1 x 22 + 0 x 23 + 1 x 24= 1 + 0 + 4 + 0 + 16= 5 +16 = 21 adică 10101 este 21 în baza 10

Pentru a putea lucra cu numere binare trebuie să știm puterile lui 2 cele mai uzuale. Adică :

20 = 1

21 = 2

22 = 2 x 2 = 4

23 = 2 x 2 x 2 = 8

24 = 2 x 2 x 2 x 2 = 4 x 4 = 16

25 = 4 x 4 x 2 = 16 x 2 = 32

26 = 32 x 2 = 64

27 = 64 x 2 = 128

28 = 128 x 2 = 256

29 = 256 x 2 = 512

210 = 512 x 2 =1024

Aceste puteri de la 2 la puterea 0 pana la 2 la puterea a 10-a sunt folosite pentru a descrie reprezentarea datelor în memorie. Dar să mai facem o transformare:

42 în baza 10 cât face în baza 2?

42 / 2 = 21 rest 0

21 / 2 = 10 rest 1

10 / 2 = 5 rest 0

5 / 2 = 2 rest 1

2 / 2 = 1 rest 0

Luăm resturile de la ultimul cât care este 1 și obținem 101010. Proba.

0 x 20 + 1 x 21 + 0 x 22 + 1 x 23 + 0 x 24 + 1 x 25= 0 + 2 + 0 + 8 + 0 + 32 = 10 + 32 = 42 adică 101010 este 42 din baza 10

Bitul se notează cu b și are următorii multipli:

8b = 1B adică Byte (Octet) deci opt biți sunt într-un Byte (se citește BAIT)

1KB (Kilo Byte) = 210 B = 1024 B = 8 x 1024 b

1MB (Mega Byte) = 210 KB = 220 B = 1024 x 1024 B

1GB (Giga Byte) = 210 MB = 220 KB = 230 B

1TB (Terra Byte) = 210 GB = 220 MB = 230 KB = 240 B

Există o diferență între kilo bit și kilo bait pentru că sunt 8 biți într-un bait se înmulțește cu 8 sau se împarte cu 8.

De exemplu spun ca am internet cu lățimea de bandă de 100 de mega biți. Asta înseamnă 100 / 8 = 12 rest 4 Mega Baiți pe secundă și dacă în realitate ajunge la 10 Mega Baiți e foarte bine.

Sau când spun că am internet de 1 Giga Bit. Asta înseamnă că am 1000 / 8 = 125 Mega Baiți și dacă în realitate ajunge sau merge cu 100 Mega Baiți e bine.

Concluzie:

biții, Hertzii cresc din 1000 în 1000

Baiții cresc din 1024 în 1024 pentru că avem doar doi biți 0 și 1 și 2 la puterea a 10-a este 1024.

Întrebări:

  1. Care este unitatea de măsură fundamentală a informației?
  2. Câte valori poate avea un bit și care sunt ele?
  3. Ce reprezintă un bit de 0 pentru un circuit electric dar un bit de 1?
  4. Ce este un sistem de numerație?
  5. Cum se mai numește codul binar pentru microprocesor?
  6. Dacă împărțim repetat un număr zecimal la 2 reținând ultimul cât și resturile obținute la fiecare împărțire de la coadă la cap până la primul rest obținem?
  7. Dacă înmulțim fiecare cifră a unui număr binar de la coadă la cap cu puterile lui 2 începând cu 2 la puterea 0 obținem?
  8. Transformați toate numerele zecimale de la 0 la 100 în binare și faceți proba.

Video: Dacă știți acum puterile lui 2 puteți urmări acest video:

Video 1 ce sunt și cum lucrăm cu numerele binare!

În video de mai jos aflați cum să puneți subtitrarea în limba română la video 1.