You are on page 1of 5
Laboratorul nr. 1 Preliminar! = Sisteme de numeratie in calculatoarele digitale, informatia de otice fel este reprezentatA, stocatA si prelucratA in form numericd. Numerele se reprezinta prin simboluri elementare, denumite cifre. ‘Un calculator poate fi prevazut sa fimetioneze in orice sistem de numerayie. in cazul reprezentarit aumerelor utilizate in mod curent, adicd cu reprezentate in baza 10, sunt necesare 10 simboluri distinete, adicd cate unnl pentru fiecare cifia. Pe parcursul dezvoltarii tehmicii de calcul, s-a stabilit cA cel mai avantajos este sistemu! binar deoarece procesul prelucrarii sau al stocétii numerelor se face ‘mai usor pentru doua simboluri, Sistemnl de calcu! trebuie s& distinga doar intre doud valori: intre un semmal de valoare joasi (Low, en.) - intre 0 si 2 volfi si uml de valoare inalta (High , en.) - aproximativ SV. In acest caz, sistemului de operare va trebui sd-i oferim spre operare reprezentarile binare ale numerelor zecimale folosite in mod curent. Un numir binar este un gir de cifre binare cum sunt ,1010” sau 100011”. in notatiile binare sunt utilizate numai ciffele 0 si 1, spre deosebire de sistemnl zecimal unde sunt folosite ciffele de la 0 la 9. Deci, sistem! binar a fost preferat din wrmtoarele motive: = simplitatea regulilor pentru operatilearitmetice si logice; = materializarea fizia relativ simp a citfelor. Este de subliniat aici, din nou, ca sistemele de calcul mu opereazi de fapt cu numerele 0 gi 1 ci cu doua stiri asociate lor, respectiv semnalele Low si High, contact inchis-contact deschis, prezenfa sau absenta de curent ete. Circuitele care trebuie sf diferenfieze muniai dowd stari sunt mai sigure in functionare decat cele care trebuie s& diferentieze 10 star. Fizic sunt folosite elemente bistabile cu stale ~ conduct (+5V) = blocat (OV) care sunt asociate cu valorile 0 gi respectiv 1 Un astfel de element reprezinta unitatea de memorie denumita bit (bit este um acronim al cuvintelor engleze binary digit -“eifia binara”). Evident, acest mod de reprezentare impune transformarea informatiilor de orice natura (texte, sunete, imagini, ete.) in seevente de cifre binare. Totalitatea regulilor de reprezentare a numerelor gi de operare cu acestea, impreun’ cu multimea cifitelor, poasta denumixea de sistem de numeratie. Sistemul de numerafie folosit, sistemul arzb, este un sistem pozitional, adic un sistem in care 0 ciftd isi aduce aportul la valoarea numarului format atat prin valoarea sa, edt si prin pozitia pe care 0 ocupa. ‘Numarul ciftelor (simboluriles) folosite pentru reprezentarea numerelor defineste baza sistemului de numeratie pozitional. Astfel, orice mumar Nr in baza b se reprezinta, in mod uni prin relatia (1): M1 Seb Pag. 1/9 Programare C/C++ - Laborator nr. 1 adica: tot ey bl eey bd? Hey Q) pentru i= -n, ...m,iar m0, in mod cwent se utilizeaza reprezentarea in baza 10, dar in mod fieevent sunt folosite si alte baze, cum ar 2,8, 16. Uilizdnd relaia (1) in sistemul zecimal, pentru nunarul 2529, rezult unnttoarea reprezentare: (2529)o=2. 10°+5. 10? +2. 10 +9 2000150018019 @) fn mod asemanator putem reprezenta valori in binar: (1011101) = 1.2640. 2°41. 2441. 241.24+0.241 @ sau, in hexazecimal: (SA4B)s=7. 1644S. 16+ 10, 167-4, 16+ 15 (6) © Conversii intre baze de numerafie Conversia intre baze de aumeratie se face pornind de la modul de reprezentare a numerelor descris prin relatia (1), Astfel, tansformarea din orice baza in baza 10 se face folosind relatia (1), respectiv (2) (vezi exemplele din relaiile (4) si (5)). Exemplu de transformare din baza 2 in baza 10: (1011101), =1. 2°40. 2°41. 244 1.241. 274+0.241= (93)t0 © Exemplu de transformare din baza 16 in baza 10: (7SA4F)ig= 7. 164+ 5. 16° + 10. 16° 4. 16+ 15 =(481871)io a ‘Transformarea din baza 10 in orice baz se face efectudnd impartiri succesive ale numarutui la baza catre care se face transformarea, resturile obfinute reprezentiind ciffele ce alcdtuiese mumarul in noua reprezentare: 37| 2 1fis]_2 wt 9] 2 > 3710 = (100101) 1] 4} 2 ONGH L2 Ol 1 Observatie, Ciftele se obin in ordine crescitoare a puterii bazei, astfel ca, Ja serierea muminului, ele vor fi scrise in ordine invers& obfinerii lor. Conversiile intre bazele 10, 2, 8, 16 care sunt utilizate in mod frecvent pentru reprezentarea informatiei in calculatoarele numerice se pot face gi folosind tabelul de corespondente ce urmeazi (Tabel nr. 1). Pag. 2/9 Programare C/C++ - Laborator nr. 1 Tabel nr. 1 Tabel de corespondentaintre valori cu reprezentare in bazele 10, 2,8 116 Zecimal | Binar | Octal_| Hexazecimal, Zecimal | Binar | Octal_| Hexazecimal 0} 0000 | 00 0 8 [1000 10 8 1|_ 0001 ol 1 9[ 1001 mn 9 2{ 0010 | 02 2 To 1010 12 A 3 {oo 03, 3 11 {1011 13 B 4{ 0100 | 04 4 12 [1100 14 c S| 0101 05, 5 13 [101 15 D 6{ 0110 | 06 6 14 {0 16 E TP ont 7, 7 1s] 7 E + Reprezentarea numerelor intregi cu semn in cod complementar (cod complement fata de 2) Pentru masinile de calcul reprezentarea numerelor intregi negative se face prin complementul fafa de doi, acesta prezentand o serie de avaniaje in implementarea operafiilor aritmetice. Aceasti reprezentare respectii si conventia de reprezentare a semmului: bitul de pe pozitia cea mai din stinga (MSB-Most Significant Bit) este bitul de semn, valoarea 0 avand ca semnificajie semmul “+”, iar valoarea 1 reprezinta semnul ““. Peniru a obtine reprezentarea binarai a unui intreg negativ, se realizeaza negarea la nivel de bit a reprezentitii valorii absolute a respectivului numar gi se adund valoarea 1 De exemplu, valoarea (-37),o, folosind un cetet pentru reprezentare, se obfine astfel: o to [i Jo Jo [i Jo [i © reprezentarea binara a valorii (37)i0 1 [i Jo Ti fa Jo [i Jo] + = & __negarea bit eu bit (complement fata de 1) 1 |i jo ji fi fo fi fi > reprezentarea binara a valorii (-37)10 © Operatii aritmetice in binar Mai jos sunt reprezentate regulile pentru ogerafile de adunare si inmultire in binar: Adunarea: Operatia in baza2 2 Operatia in baza 10 rontar+ wt 10101 2 111010 58 Observatie. Cu T s-a reprezentat cémpul de transport Pag. 3/9 Programare C/C++ - Laborator nr. 1 inmuttirea: ‘+ Operatii logice Ia nivel de bit Operatia in baza2 > —_Operatia in baza 10 1o0101* 37* 10101 21 100101 "7 100101 100101 1100001001 Mai jos sunt reprezentate regulile pentru oreratile logice care se efectueaza la nivel de bit: Negarea (NOT) $I logic (AND) A 0 0 1 1 SAU logic (OR) A 0 0 1 1 SAU EXCLUSIV (XOR) aAb 0 1 1 0 * Operatii de deplasare la nivel de bit o [oh Jo Jo [i Jo [i Ja 1 fifo fi fa Jo fa Jo ]z o [ofi fo fo [1 fo fa 37 o folo {i Jo [a Jo fa 21 o [ofo [o fo [i fo [i J s7a21 o Joti Jo Jo [a Jo fa 37 o foto [i fo fa fo fa 21 o fol fi fof fo fh J 371 ofoti fo fo fi fo fa 37 o fofo [i Jo [a Jo fa 21 o [oti [i fo fo fo fo J 37*21 Operatiile de deplasare au ca efect deplascrea tuturor bifilor cu acelagi numa de pozifii la sténga (<<), respective la dreapta (>>). Locatiile eiberate se vor completa cu valoarea 0. Pag. 4/9 Programare C/C++ - Laborator nr. 1 Bi pirdut pen tunchire 37 <3 Completarea0 Figura nr. 1 Descrierea operatiior de deplasare la nivel de bit Observatie, Deplasarea la stinga cu 1 este echivalentd cu inmultirea cu 2 a numirului respeetiv, iat deplasarea la dreapta, cu impartirea intreaga la 2. Exercitiu: Dona numere reprezentate in baza 10 se transforma in baza 2. Se caleuleaz& suma si produsul in baza 2, rezultatele s2 transforms in baza 10 si se verifica corectitudinea lor. Se procedeazA similar pentru numerele transformate in baza 8 si apoi in bazal6, Pe aceleasi numere se efectueazi operatii logice la nivel de bit si deplasari la dreapta (©>) si stanga (<<) si se interpreteazit rezultatele.

You might also like