Documente Academic
Documente Profesional
Documente Cultură
Scopul lucrrii
Scopul lucrrii l reprezint nelegerea modului de conversie a unui numr ntreg sau
zecimal dintr-o baz n alta. Lucrarea se va axa pe conversia numerelor ntregi i zecimale din
baza 10 ntr-o baz oarecare, n special baza 16, 2 i 8, precum i pe conversia invers, dintr-o
baz oarecare n baza 10, mai ales din baza 16, 2 i 8 n baza 10. Se va studia i modul de
realizare a conversiei din baza 16 direct n baza 2 sau 8 i invers. Vor fi prezentate operaii
simple (adunri, scderi) n diferite baze de numeraie.
Consideraii teoretice
n primul rnd trebuie subliniat c pentru conversia unui numr care conine att parte
ntreag ct i parte zecimal trebuie convertite separat partea ntreag i cea zecimal.
1
Conversia prii ntregi
Algoritmul cel mai simplu const n mprirea succesiv a numrului scris n baza 10
la baza spre care se dorete conversia (se mparte numrul la baz, iar n continuare se mparte
ctul obinut la baz .a.m.d. pn cnd ctul devine 0), dup care se iau resturile obinute n
ordine invers, care constituie valoarea numrului n baza cerut.
Exemple:
S se converteasc numerele ntregi 347 i 438 din baza 10 n baza 16, 2 i 8.
Mai nti se convertete n baza 16 pentru c aceasta se realizeaz prin mai puine
mpriri dect conversia n baza 2 sau 8.
347 16
32 21 16
27 16 1 16
16 5 0 0
11 1
(adic B)
Mai departe, putem realiza conversia n baza 2 i 8 n mod analog, dar exist i o
metod mai rapid de conversie a numerelor ntre bazele 2,8 i 16 innd cont c pentru
fiecare cifr hexa exist 4 cifre binare corespondente i pentru fiecare cifr n octal exist 3
cifre binare dup tabelul care urmeaz:
Numrul binar
Valoarea n Valoarea n Numrul binar
coresp. cifrei
zecimal hexazecimal coresp. cifrei hexa
octal
0 0 0000 000
1 1 0001 001
2 2 0010 010
3 3 0011 011
4 4 0100 100
5 5 0101 101
6 6 0110 110
7 7 0111 111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
2
Mai trebuie inut cont la trecerea unui numr prin bazele 2,8,16 c gruparea cifrelor
din baza 2 se face dinspre virgul spre extremiti, adic la numerele ntregi de la dreapta la
stnga (prin completare cu zerouri la stnga numrului dac este cazul, deci n partea care nu-i
afecteaz valoarea), iar la numerele zecimale gruparea se face de dup virgul de la stnga la
dreapta, prin adugare de zerouri la dreapta numrului.
n concluzie,
347(D) = 15B(H) = 1 0101 1011(B) = 533(O)
438(D) = 1B6(H) = 1 1011 0110 (B) = 666(O)
Pentru a converti un numr subunitar (deci partea fracionar a unui numr) din baza
10 ntr-o baz oarecare se fac nmuliri succesive ale prilor fracionare pn cnd se ajunge
la parte fracionar nul, sau se ajunge la perioad sau se depete capacitatea de
reprezentare (se obin cifre suficiente, dei algoritmul nu s-ar fi terminat). Ceea ce depete
partea zecimal la fiecare nmulire reprezint o cifr a numrului n baza spre care se face
conversia.
Pentru exemplificare este uor s se foloseasc schema urmtoare, care prin cele dou
linii separ mai clar cifrele reprezentrii precum i indic mai bine poziia virgulei (cifrele de
la prima nmulire n jos adic de sub linie sunt dup virgul). Trebuie remarcat c se
nmulete doar ceea ce este n dreapta virgulei.
Exemplu:
S se converteasc numrul 0,47(D) n binar, octal i hexazecimal:
0, 47*2
0 94
1 88
1 76
1 52
1 04
0 08
0 16
0 32
0 64
1 28
0 56
1 12
0 24
0 48
0 96
1 ...
Conversia unui numr care are att parte ntreag ct i parte zecimal se face
convertind pe rnd partea ntreag i cea zecimal.
3
Exemplu:
S se reprezinte n baza 2 si 16 numrul real 14,75
Obinem: 14(D) = 1110(B) = E(H),
iar 0,75(D) = 0,11(B) = C(H).
Deci 14,75(D) = 1110,11(B) = E,C(H)
Pentru a converti un numr dintr-o baz oarecare n baza 10 se poate folosi formula
definit n prima parte a lucrrii i anume dac se d un numr scris ntr-o baz oarecare b
sub forma parte ntreag i parte zecimal:
Nr(b) = Cn Cn-1 Cn-2 C2C1 C0 , D1D2D2D3
atunci valoarea sa n baza 10 va fi:
Nr(10) = Cn * bn + C n-1 * bn-1 + + C 2 * b2 + C 1 * b1+ C 0 * b0 + D1 * b-1 + D2 * b 2 +
+ D3 * b 3 +
Exemple:
Adunarea
Adunarea se face dup aceleai reguli ca n zecimal, cu observaia 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 obine un rezultat mai mare dect b-1,
va apare acel transport spre cifra de rang urmtor i+1, iar pe poziia de rang i va rmne
restul mpririi rezultatului adunrii 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)+
10110101(B) 3721(Q) 33E4C8(H)
4
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 fcut transportul. Operaia de adunare n binar este
util la reprezentarea numerelor n complement fa de 2 cnd se alege varianta adunrii
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
Scderea
Si pentru scdere sunt valabile regulile de la scderea din zecimal i anume: dac nu se
pot scdea dou cifre re rang i (adic cifra desczutului este mai mic dect a scztorului)
se face mprumut o unitate din cifra de rang urmtor (i+1). n cazul n care cifra din care
se dorete realizarea mprumutului este 0, se face mprumutul mai departe la cifra de rang
urmtor.
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 numeraie 16 i 8 i s se verifice rezultatul prin conversia lui n zecimal.
Mersul lucrrii
5
6