Professional Documents
Culture Documents
Baza de numeraţie utilizată pentru reprezentarea informaţiei în calculatoarele numerice este baza
2. Argumentele care au determinat această alegere sunt:
• *operaţiile aritmetice elementare în baza 2 pot fi asimilate cu operaţiile în logică
bivalentă efectuate într-o algebră booleană; în consecinţă, atât operaţiile aritmetice cât şi
operaţiile logice pot fi tratate unitar, prin intermediul funcţiilor logice din algebra booleană.
• *componentele elementare ale unui SC, utilizate pentru memorarea şi manevrarea
informaţiilor, indiferent de natura lor (dispozitive electronice, optice, magnetice, electrice,
etc.), se caracterizează prin două stări stabile (circuit închis / deschis, câmp magnetizat într-
un sens / în sens opus, câmp opac / transparent, etc.). Acest lucru face ca funcţionarea lor să
poată fi exprimată prin intermediul unor funcţii booleene.
• *proiectarea logică a dispozitivelor elementare ale unui calculator numeric se realizează
prin intermediul circuitelor logice care modelează funcţiile booleene dorite.
1 Sisteme de numerotaţie
Sistemele de numeraţie poziţionale sunt acele sisteme de numeraţie pentru care valoarea unei
cifre din cadrul unui număr depinde de poziţia ocupată de acea cifră în cadrul numărului.
Exemplu: sistemul arab zecimal de numeraţie este unul poziţional. De exemplu, cifra 7 are valoarea 70 în numărul 41278 şi are valoarea 7000 în
numărul 27903.
Sistemele de numeraţie nepoziţionale sunt sistemele de numeraţie pentru care valoarea unei cifre
dintr-un număr nu este unic determinată de poziţia cifrei în număr ci de contextul în care se află
cifra.
Exemplu: sistemul roman de numeraţie este unul nepoziţional; valoarea cifrei I în numărul II este +1 iar în numărul IV este –1.
Baza unui sistem de numeraţie poziţional este dată de numărul de elemente care formează
alfabetul sistemului de numeraţie. Se consideră că alfabetul este format din cifre care sunt numere
întregi, consecutive, nenegative.
Exemplu: sistemul de numeraţie în baza 2 are alfabetul {0,1}; sistemul de numeraţie în baza 16 are
alfabetul {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
1
Sistemele de numeraţie poziţionale folosesc acelaşi sistem de reguli de reprezentare a numerelor;
ele diferă doar prin alfabetul pe care îl utilizează şi, implicit, prin bază.
Se observă că prin conversia părţii întregi a numărului: bn-1...b0 se obţine un întreg, iar prin
conversia părţii fracţionare: b-1...b-m se obţine un număr subunitar.
3 Conversia din baza 10 într-o bază de numeraţie oarecare B se face conform următorului
algoritm
În primul rând trebuie subliniat că pentru conversia unui număr care conţine atât parte întreagă
cât şi parte zecimală trebuie convertite separat partea întreagă şi cea zecimală.
2
33/5=6 rest 3
6/5=1 rest 1
1/5=0 rest 1
Rezultatul obţinut este 4208=113313.
Observaţie: Numărul maxim care poate fi reprezentat în baza B cu m cifre este Bm-1.
Exemplu: Numărul maxim care se poate reprezenta cu 4 cifre, în baza 3, este 2222, adică 34-1.
Pentru conversia unui număr din baza A în baza Ak se aplică algoritmul următor:
• se grupează cifrele numărului în baza A în grupe de câte k elemente, începând de la marca
zecimală la dreapta şi la stânga
• valoarea fiecărei grupe, în baza 10, corespunde unei cifre în baza Ak
• numărul în baza Ak este numărul format de cifrele obţinute prin conversiile de la pasul precedent
Exemple:
Numărul (102001121)3=(12047)9
Numărul (1020,01121)3=(36,153)9
În continuare vor fi prezentate operaţiile de adunare şi scădere a numerelor scrise în binar, octal
şi hexazecimal a numerelor întregi fără semn.
Adunarea
Adunarea se face după aceleaşi reguli ca în zecimal, cu observaţia că cifra cea mai mare dintr-o
baza “b” va fi b-1 (adică 9 in zecimal, 7 in octal, 1 in binar şi F în hexazecimal). Deci dacă prin
adunarea a două cifre de rang “i” se va obţine un rezultat mai mare decât b-1, va apare acel transport
spre cifra de rang următor “i”+1, iar pe poziţia de rang “i” va rămâne restul împărţirii rezultatului
adunării cifrelor de rang “i” la bază. Transportul spre cifra de rang “i”+1 va deveni o nouă unitate la
suma cifrelor de rang “i”+1, adică se va mai aduna acel transport 1.
Exemple:
1111 1 11 11
01010110(B)+ 1364(Q)+ 6D8A32(H)+
3
10110101(B) 3721(Q) 33E4C8(H)
100001011(B) 5305(Q) A16EFA(H)
S-a marcat transportul de o unitate la cifra de rang superior prin scrierea unui 1 deasupra cifrei de
rang superior la care s-a făcut transportul. Operaţia de adunare în binar este utilă la reprezentarea
numerelor în complement faţă de 2 când se alege varianta adunării valorii 1 la reprezentarea din
complement faţă de 1 (vezi lucrarea cu reprezentarea datelor).
Exemple:
• Să se adune cele 2 numere întregi 347(D) şi 438(D) convertite mai sus în lucrare în bazele 16 si 8 si
să se verifice rezultatul prin conversia lui in baza 10
Scăderea
Si pentru scădere sunt valabile regulile de la scăderea din zecimal şi anume: dacă nu se pot
scădea două cifre rang “i” (adică cifra descăzutului este mai mică decât a scăzătorului) se face
“împrumut” o unitate din cifra de rang următor (“i”+1). În cazul în care cifra din care se doreşte
realizarea “împrumutului” este 0, se face “împrumutul” mai departe la cifra de rang următor.
Exemple:
.. . .
01011010(B) – A3D4(H) –
01001100(B) 751B(H)
00001110(B) 2EB9(H)
• Să se scadă cele două numere întregi 347(D) şi 438(D) convertite mai sus în lucrare în bazele de
numeraţie 16 şi 8 şi să se verifice rezultatul prin conversia lui în zecimal.
Operaţia de scădere este utilă când se doreşte reprezentarea numerelor în complement faţă de 2 şi
se efectuează scăderea din 2nr_biti_reprez + 1 a numărului reprezentat în modul.
7 Biţi şi bytes
Biţi Unitatea de măsură de bază utilizată în măsurarea informaţiei se numeşte bit. Capacitatea
hard-disk-ului, a memoriei RAM, mărimea fişierelor toate se măsoară în biţi. Bitul este echivalent cu o
singură cifră din sistemul de numerotaţie zecimal. Cifrele iau valori de la 0 la 9, bitul poate lua două
valori 0 şi 1, adică reprezentarea în baza doi (binar). Alegerea reprezentării binare s-a făcut din
considerente tehnice. Electronic este simplu şi ieftin să reprezinţi un bit în binar. Cuvântul bit s-a născut
din îmbinarea a cuvintelor: binary digit.
4
Bytes Rareori în reprezentarea datelor vor fi utilizaţi biţii. În cele mai multe cazuri se foloseşte
gruparea acestora câte 8. Această grupare poartă numele de byte sau în româneşte octet. 1 byte
reprezintă pentru calculator cantitatea de informaţie echivalentă cu o literă de text.
Notaţiile prescurtate fac diferenţa între bit (notat cu "b") şi Byte (notat cu "B"). Dar fiindcă
aceste unităţi sunt foarte mici în multe cazuri practice, cel mai adesea se folosesc multiplii lor, cu
prefixele uzuale folosite şi în cazul altor unităţi de măsură.
În tabelul următor sunt daţi multiplii biţilor şi octeţilor:
Prefix BIŢI BYTES (OCTEŢI)
Multipl Cantitate Multiplu Cantitate
u
Kilo Kilobit 1024 biţi KiloByte 1024 Bytes
Mega Megabit 1024 Kb MegaByte 1024 KB
Giga Gigabit 1024 Mb GigaByte 1024 MB
Tera Terabit 1024 Gb TeraByte 1024 TB
Codul ASCII (American Standard Code for Information Interexchange) Cu 8 biţi într-un
byte se pot reprezenta 256 de valori de la 0 la 255:
0 = 00000000
1 = 00000001
2 = 00000010
...
254 = 11111110
255 = 11111111
Setul de coduri ASCII este folosit pentru reprezentarea binară a caracterelor pe 8 biţi, adică
maxim 256 caractere. Codul ASCII se împarte în:
- codul ASCII neprintabil cu coduri de la 0 la 31
- codul ASCII standard care cuprinde codurile de la 32 la 127 şi conţine caracterele standard
utilizate de calculatoare şi corespunzătoare versiunii mai veche pe 7 biţi a codului ASCII
- codul ASCII extins care cuprinde codurile de la 128 la 255 şi conţine caractere programabile
printre ele se află şi caracterele străine de limba engleză, caractere speciale, caractere grafice.
5
biţii 1 devin 0 iar cei cu valori 0 devin 1, astfel ca bitul semn va fi pe 1. Trebuie reţinut faptul că se
face complementarea reprezentării numărului în modul, adică se reprezintă mai întâi numărul
pozitiv, după care se complementează toţi biţii.
• La reprezentarea în complement faţă de 2, dacă numărul este pozitiv se reprezintă la fel ca la mărime
şi semn, respectiv ca la complement faţă de 1, adică se reprezintă numărul în modul, iar bitul de
semn este 0. Dacă numărul este negativ, atunci se complementează faţă de 2 reprezentarea numărului
în modul şi anume se scade din valoarea 2n+1 (unde n este numărul de biţi pe care se face
reprezentarea, bitul de semn devenind automat 1) reprezentarea în modul; o altă cale de a obţine
reprezentarea în complement faţă de 2 a numerelor negative este adăugând valoarea 1 la
reprezentarea numărului negativ în complement faţă de 1.
Din modul de reprezentare a numerelor în cele trei forme rezultă că numerele pozitive au aceeaşi
reprezentare atât în mărime şi semn cât şi în complement faţă de 1 şi în complement faţă de 2.
O atenţie sporită trebuie acordată spaţiului minim (număr minim de octeţi) pe care se poate
reprezenta un număr în cele trei moduri de reprezentare. De exemplu când se doreşte aflarea numărului
minim de octeţi pe care se poate reprezenta numărul 155 trebuie să se ţină cont că pentru reprezentarea
modulului este la dispoziţie mai puţin cu un bit (cel de semn) din spaţiul ales pentru reprezentare. În
acest caz deşi valoarea modulului său încape pe un octet (155 = 9Bh), numărul nu se poate reprezenta pe
un octet în nici un mod de reprezentare, deoarece bitul semn trebuie reprezentat separat, altfel la
interpretarea reprezentării 9Bh, primul bit fiind 1, reprezentarea va fi a unui număr negativ în loc de
numărul dorit. În concluzie, pentru reprezentarea numărului 155 va fi nevoie de minim 2 octeţi
(reprezentarea se face pe multiplu de octeţi), iar numărul va fi reprezentat astfel: 009Bh în toate cele trei
moduri de reprezentare, fiind pozitiv.
Exemple:
Să se reprezinte pe 4 octeţi următoarele numere: 157, 169, -157, -169
157(D) = 1001 1101(B) = 9D(H)
Deci reprezentarea in MS. C1 si C2 va fi 00 00 00 9D (H)
169(D) = 1010 1001(B) = A9(H)
Deci reprezentarea in MS, C1 si C2 va fi: 00 00 00 A9 (H)
Pentru –157, se reprezintă mai întâi în modul (este calculat mai sus) şi se obţine:
MS: 1000 0000 0000 0000 0000 0000 1001 1101 (B) = 80 00 00 9D (H)
C1: 1111 1111 1111 1111 1111 1111 0110 0010 (B) = FF FF FF 62 (H)
C2: 1111 1111 1111 1111 1111 1111 0110 0011 (B) = FF FF FF 63 (H)
Pentru –163 analog:
MS: 80 00 00 A9 (H)
C1: FF FF FF 56 (H)
C2: FF FF FF 57 (H)
Chiar dacă sistemul de calcul utilizează ca unitate fundamentală un bit adică binary digit, în practică
se folosesc grupări de biţi (de exemplu pentru măsurarea dimensiunii fişierelor folosim octeţii (bytes) şi
multiplii acestuia, 1 byte este format din 8 biţi). În cazul programării, al depanării însă se utilizează o
altă convenţie: gruparea biţilor câte 4. Cea mai mare valoare pe care o putem obţine este 1111(2) adică în
zecimal 15. Numărul de combinaţii al grupării biţilor câte patru este 16 combinaţii (24). Putem
concluziona că această grupare corespunde codificării în baza 16, hexazecimală sau hexa mai pe scurt.
Este mult mai la îndemână să utilizăm această convenţie decât să prelucrăm şiruri lungi de 1 şi de 0.
Pe de altă parte două grupări de câte patru biţi reprezintă un byte, deci convenţia este utilă.
Trebuie reţinut că indiferent dacă este vorba de hexa, biţi sau orice altă formă de reprezentare,
informaţia în calculator sub o singură formă: şir de 0 şi de 1.