0 evaluări0% au considerat acest document util (0 voturi)
14 vizualizări8 pagini
Organizarea oricărui computer depinde considerabil de reprezentarea numerelor şi caracterelor. În continuare se vor prezenta modurile în care calculatorul memorează şi manipulează caractere şi informaţii.
Organizarea oricărui computer depinde considerabil de reprezentarea numerelor şi caracterelor. În continuare se vor prezenta modurile în care calculatorul memorează şi manipulează caractere şi informaţii.
Organizarea oricărui computer depinde considerabil de reprezentarea numerelor şi caracterelor. În continuare se vor prezenta modurile în care calculatorul memorează şi manipulează caractere şi informaţii.
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 nchis- deschis 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
Se observ c, n funcie de poziia pe care o ocup, cifra 0 are valori diferite. numrul de mii 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 x 10 = x b , 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=bq 0 +r 0 0r 0 <b qo=bq 1 +r 1 0r 1 <b ... ... q k-1 =bq k +r k 0r k <b oprindu-ne la acel k pentru care q k =0. n acest caz avem: x 10 =(r k r k-1 ......r 1 r 0 ) 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 b) b=8. 843=8105+3 i deci: 421=2 210+1 105=813+1 1101001011 2
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 +y 1 0r -1 <b ;y 1 (0,1) y 1 b= r -2 +y 2 0r -2 <b ;y 2 (0,1) ... ... ... ... y m-1 b= r -m +y m 0r -m <b ;y m (0,1)
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.
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,546 b) b=8. 0,2738= 2,184 i deci: 0,5462= 1,092 0,1848= 1,472 0,0922= 0,184 0,4728= 3,776 0,1842= 0,368 0,010001011 2
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; III) 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)
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.
1111+ 1001 0110 11110 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.
Explicaie: 1010- 0111 0011 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
F + E = 15 +14 = 29 16= C (1 mai departe) F + 1 = 15 +1 = 16 = 10 16 + 1=11
FF + 1E 47 164
F + E +7 =36 2*16=4 (2 mai departe) F +1 +4 = 14+2 = 16
1A- C C
A C = (16 + A) C = C (se mprumut o unitate din stnga) 1-1 = 0
28EF- 11FA 16F5 F A = 5 E F = (E + 16) F = F (se mprumut a unitate din stnga) 8 1 1 = 6 2 1 = 1
Probleme propuse
1. Definii bitul. 2. Ce este byte-ul? 3. Ce este cuvntul? 4. 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: 1010+ 0101 1010+ 0101 1011+ 0111 1101+ 1001 0111 1110 - 0111 10000 - 00111 01000