Sunteți pe pagina 1din 8

Sisteme de numeraie Organizarea oricrui computer depinde considerabil de reprezentarea numerelor i caracterelor.

n continuare se vor prezenta modurile n care calculatorul memoreaz i manipuleaz caractere i informaii. Unitatea de baz de memorare a informaie se numete bit (contragere de la Binary Digit, n traducere cifr binar). Concret, bitul nu este dect starea de nchisdeschis sau sus-jos dintr-un circuit. Noiunea de bit a fost utilizat pentru prima dat n teza de doctorat a matematicianului Claude Shannon, care a inventat prin teza sa un nou domeniu numit teoria informaiei. n 1964 proiectanii calculatorului mainframe IBM System/360 au stabilit ca i convenie folosirea grupurilor de 8 bii ca unitate de baz a memoriei calculatorului. Astfel a aprut octetul (o) sau byte-ul (B). Un cuvnt este format din doi sau mai muli octei adiaceni adresai i manipulai mpreun. Mrimea cuvntului reprezint mrimea datelor care sunt optim manevrate de ctre o anumit arhitectur. Cuvintee pot fi succesiuni de 16, 32, 64 de bii. O succesiune de 4 bii (jumtate de octet) se numete nibble. Definiia 1: Un sistem de numeraie este format din totalitatea regulilor de reprezentare a numerelor cu ajutorul unor simboluri numite cifre. Definiia 2: Se numete baza sistemului de numeraie numrul total de cifre distincte utilizate ntr-un sistem de numeraie. Baza sistemului de numeraie se noteaz cu b i satisface condiia b>1. Numerele pot fi reprezentate n baza b folosindu-se cifrele cuprinse n intervalul [0, b-1]. Definiia 3: Un sistem de numeraie se numete poziional, dac valoarea unei cifre este dat de poziia pe care aceasta o ocup n cadrul numrului. Exemplu: Considerm numrul 2003 scris n baza 10. n = 2003 numrul de uniti numrul de zeci numrul de sute numrul de mii Se observ c, n funcie de poziia pe care o ocup, cifra 0 are valori diferite. Datele sunt reprezentate n computer numai n sistem binar, sistemele octal i hexazecimal fiind notaii folosite de ctre programatori pentru scurtarea notaiilor prea lungi care ar rezulta n cazul reprezentrii n binar a numerelor mari. 2.2 Algoritmi de conversie

Conversia numerelor ntregi din baza 10 n baza b Fie x Z+. Dac x<b, atunci x10 = xb, iar dac x b, trecerea de la baza 10 la baza b se face astfel: Conform teoremei mpririi cu rest a numerelor ntregi, putem scrie irul de egaliti: x=bq0+r0 0r0<b 0r1<b qo=bq1+r1 ... ... qk-1=bqk+rk 0rk<b oprindu-ne la acel k pentru care qk=0. n acest caz avem: x10=(rkrk-1......r1r0)b. Algoritmul de conversie presupune mprirea numrului la baza b. Se obine un rezultat format din ct i rest. Noul ct se mparte din nou la baz. Algoritmul continu pn cnd se obine ctul 0. Resturile obinute, scrise n ordine invers, reprezint numrul iniial convertit n baza b. Problem. S se converteasc numrul x=843 din baza 10 n bazele 2,8 i 16. Soluie. Vom avea: a)b=2 843=2 421+1 421=2 210+1 210 =105+0 105=252+1 52=226+0 26=213+0 13=26+1 6=23+0 3=21+1 1=20+1 b) b=8. 843=8105+3 105=813+1 13=81+5 1=80+1 c) b=16. 843=1652+11 52=163+4 3=160+3 i deci: 84310= 11010010112 15138 34B16

Conversia numerelor subunitare din baza 10 n baza b Fie y (0,1). Conversia lui y din baza 10 n baza b se face prin nmuliri succesive cu baza, separnd partea ntreag rezultat, dup cum urmeaz: yb= r-1+y1 0r-1<b ;y1(0,1) y1b= r-2+y2 0r-2<b ;y2(0,1) ... ... ... ... 0r-m<b ;ym(0,1) ym-1b= r-m+ym Procedeul are n general un numr infinit de pai, totui n practic se face conversia lund n considerare un numr finit de pai, n funcie de gradul de precizie ales (numrul de nmuliri). Exemplul 1: S se converteasc numrul 0.375 din baza 10 n bazele 2, 8, respectiv 16.

0.3752 = 0.7502 = 0.5002 =

0.750 1.500 1

0.3758 =

3.000

0.37516 = 6.000

0.375(10) = 0.011(2)

0.375(10) = 0.3(8)

0.375(10) = 0.6(16)

Exemplul 2. S se converteasc numrul y=0,273 din baza 10 n bazele 2, 8, respectiv 16. Pentru baza 2 se va realiza conversia cu gradul de precizie 9, iar pentru bazele 8,16 gradl de precizie este 3. a) b=2. 0,2732= 0,5462= 0,0922= 0,1842= 0,3682= 0,7362= 0,4722= 0,9442= 0,8882= 0,546 1,092 0,184 0,368 0,736 1,472 0,944 1,888 1,776 b) b=8. 0,2738= 2,184 0,1848= 1,472 0,4728= 3,776 i deci:

0,0100010112 0,27310= 0,21368 c) c=16. 0,27316= 4,368 0,45E16 0,36816= 5,888 0,88816= 14,208

Conversia numerelor reale din baza 10 n baza b Fie zR+. Numrul z se poate exprima n mod unic sub forma : z=[z]+{z},unde prin [z]i {z} am exprimat partea ntreag i, respectiv, partea fracionar a numrului z. Pentru a realiza conversia lui z din baza 10 n baza b se parcurg urmtoarele etape: I) se realizeaz conversia prii ntregi conform algoritmului de conversie a numerelor ntregi din baza 10 n baza b; II) se realizeaz conversia prii fracionare conform algoritmului de conversie a numerelor subunitare din baza 10 n baza b; III) se concateneaz cele dou rezultate, plasnd virgula ntre ultima cifr rezultat n urma conversiei prii ntregi i prima cifr rezultat n urma conversiei prii fracionare. Exemplu: S se converteasc numrul 843,375 n bazele 2,8 respectiv 16. Conform rezultatelor obinute avem: 843,375(10) = 1101001011,011(2) 843,375(10) = 1513,3(8) 843,375(10) = 34B,6(16) Conversia numerelor reale din baza b n baza 10 Pentru a realiza conversia unui numr real din baza 10,se procedeaz astfel: I) se trece de la reprezentarea poziional a numrului n baza b la reprezentarea algebric n baza b; II) se exprim cifrele numrului i exponenii care apar n reprezentarea algebric prin cifre sau numere n baza 10;

se efectueaz calculele n baza 10 i se obine tocmai reprezentarea poziional a numrului n baza 10. Exemplu: S se converteasc n baza 10 numerele: a) 10101,0110(2) b) 257,115(8) c) 1EF,24B(16) 2423222120 2-12-221 0 1 0 1 , 0 1 1 0 = 1*20+0*21+1*22+0*23+1*24+0*2-1+1*2-2+1*2-3+0*2-4=2+4+16+ + 1/4+1/8=(22*8+2+1)/8 =22,375 2 5 7 , 1 1 5 = 2*82+5*81+7*80+1*8-1+1*8-2+5*8-3 = 128+40+7+1/8+1/64+1/512 = = (89600+64+8+5)/512 =175,150390 1 E F , 2 4 B = 1*162+E*161+F*160+2*16-1+4*16-2+B*16-3 = 256 + 14*16 + 15 + 2/16 + + 4/256 + 11/4096 = 495,14331 Conversii din binar n octal i hexazecimal Pentru a putea realiza aceste conversii se prezint urmtorul tabel: Zecimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binar 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 Hexazecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

III)

Conversii binar octal Conversia n octal se face astfel: cifrele de la partea ntreag se mpart n grupe de cte trei de la dreapta la stnga, iar cifrele de la partea fracionar se mpart n grupe de cte trei de la stnga la dreapta (prima grup de la partea ntreag i ultima grup de la partea

fracionar se completeaz n fa, respectiv n spate, cu unul sau dou zerouri) i apoi fiecare grup de trei cifre binare se nlocuiete cu cifra octal corespunztoare ei. Invers, dac numrul este scris n octal, conversia n binar se face nlocuind fiecare cifr octal cu grupul de trei cifre binare corespunztoare ei. Exemplu: 1110010101 = 001.110.010.101 = 1625(8) Conversii binar hexazecimal n acest caz conversia se face la fel ca n cazul precedent, cu precizarea c se vor lua n considerare grupe de cte 4 cifre. Exemplu: 1110011101 = 0011.1001.1101 =39D(16) Operaii aritmetice n binar Tabla adunrii n binar este urmtoarea: + 0 1 0 0 1 1 1 10

Not: 1+1 = 2 (10 n binar). Operaii aritmetice n hexazecimal: La adunarea n hexa se ine cont c baza de referin este 16. Se va trece astfel ca rezultat intermediar numrul ce depete baza i se va transporta unitatea (sau unitile) ctre stnga. La scdere se va ine cont, n cazul unei scderi intermediare cu rezultat negativ, c la desczut se adun 16 (spre deosebire de 10 n baza 10) i se va transporta unitatea ce trebuie sczut spre stnga.

Probleme rezolvate: 1100+ 0111 1000 11011 1111+ 1001 0110 11110 Explicaie: 0+1+0 = 1 0+1+0 = 1 1+1+0 = 10 (se scrie 1, 1 mai departe) 1+0+1 = 10 + 1 = 11 Explicaie: 1+1+0 = 10 (se scrie 0,1 mai departe) 1+0+1 = 10+1 = 11 (se scrie 1, 1 mai departe) 1+0+1 = 10+1 = 11 (se scrie 1, 1 mai departe) 1+1+0 = 10+1 = 11

Tabla scderii n binar: 0 1 0 0 Imposibil* 1 1 0 * Not: 0-1 este imposibil n binar dar se trece 1 i se mprumut o unitate din stnga. 10100111 0011 Explicaie: 0 1 = 1 (se mprumut o unitate din stnga) (1-1) - 1= 0 1 = 1 (se mprumut o unitate din stnga) (0-1) 1 =1-1 (se mprumut o unitate din stnga) (1-1) 0 = 0 Explicaie: 1-10=0 110=0 1 1 1 = 0 1 = 1 (se mprumut o unitate din stnga) (1 1) 0 0 = 0

11110111 0100 0100

1A + 4B 65 A+B = 10+11 = 5 (1 mai departe) 1+4 = 5 + 1 = 6 FF + 1E 11C

F + E = 15 +14 = 29 16= C (1 mai departe) F + 1 = 15 +1 = 16 = 1016 + 1=11 FF + 1E 47 164 F + E +7 =36 2*16=4 (2 mai departe) F +1 +4 = 14+2 = 16 1AC C A C = (16 + A) C = C (se mprumut o unitate din stnga) 1-1 = 0 28EF11FA 16F5 FA=5 E F = (E + 16) F = F (se mprumut a unitate din stnga) 8 1 1 = 6 2 1 = 1 Probleme propuse 1. 2. 3. 4. Definii bitul. Ce este byte-ul? Ce este cuvntul? Din punct de vedere al reprezentrii numerelor, ce sistem de numeraie este preferabil de utilizat? 5. Ce reprezint gradul de precizie n cazul algoritmului de conversie a numerelor subunitare din baza 10 n baza b? 6. Cnd se ncheie algoritmul de conversie a numerelor ntregi din baza 10 n baza b? 7. Realizai conversia numerelor 40, 272, 18, 94 n bazele 2, 8, respectiv 16. 8. Realizai conversia numerelor 0,824; 0. 029; 0,456; 0,613 n bazele 2, 8, respectiv 16. 9. Realizai conversia numrului 110110011 n bazele 10, 8, 16. 10. Efectuai urmtoarele operaii: 1011+ 0111 1010+ 0101 1101+ 1001 0111 8A2 + 194 CF1 1110 0111 10000 00111 01000 1A2 DB 11111 11010 00011 AFFE 4C8F

45 + 1F

10 + 1E

1F E

S-ar putea să vă placă și