Sunteți pe pagina 1din 5

Conversia numerelor

Se numeşte conversie trecerea unui număr dintr-o bază de numeraţie în altă bază de
numeraţie.
Se numeşte bază de numeraţie mulţimea de simboluri distincte numire cifre.
Se numeşte sistem de numeraţie mulţimea de reguli de reprezentare a numerelor.

Pentru baza 16 cifrele hexazecimale sunt: de la 0 la 9, la care se mai adaugă şi literele A –


care reprezintă 10, B – 11, C - 12, D - 13, E - 14, F - 15.
1. Conversia numerelor din baza 10 în orice bază
Se împarte numărul la baza în care se doreşte transformat până când ultimul cât este 0 şi se
citesc resturile de la sfârşit la început.

734=2DE(16)
734:16=45 rest 14=E16
45:16=2 rest 13=D16
2:16=0 rest 2

2. Conversia numerelor din orice bază în bază 10


Se foloseşte următoarea formulă: N b = a1b n−1 + a 2 b n −2 + ... + a n b 0 , unde N – este numărul
reprezentat în baza b, b – baza în care este reprezentat numărul, n – numărul de poziţii pe care
este reprezentat numărul, ai – elementul aflat pe poziţia i.

A3C16 = A *16 3−1 + 3 * 16 3−2 + C * 16 0 = 10 * 256 + 3 * 16 + 12 * 1 = 2620


unde N=A3C, b=16, n=3, a1=A,a2=3, a3=C

734 8 = 7 * 8 3−1 + 3 * 8 3−2 + 4 * 8 0 = 7 * 64 + 3 * 8 + 4 * 1 = 476


unde N=734, b=8, n=3, a1=7,a2=3, a3=4

3. Conversia numerelor din bază 2 în bază 2n


Se grupează de la dreapta la stânga câte n poziţii binare. În cazul în care grupul nu este
complet, se vor adăuga atâtea poziţii de zero câte sunt necesare pentru a forma grupul
complet. Fiecare grup se va transforma în baza b conform formulei prezentate la punctul 2.

11100101111010110102=????16
Deoarece 16=24 atunci se vor grupa de la dreapta spre stânga câte 4 poziţii binare. Dacă
ultimul grup nu este complet se vor adăuga zerouri câte sunt necesare – în cazul nostru 1.

0111 0010 1111 0101 10102=72F5A16


Fiecare grup rezultat va fi calculat cu formula de la punctul anterior:
01112=0*24-1+1*24-2+1*24-3+1*24-4=7
00102=0*24-1+0*24-2+1*24-3+0*24-4=2
11112=1*24-1+1*24-2+1*24-3+1*24-4=15=F16
01012=0*24-1+1*24-2+0*24-3+1*24-4=5
10102=1*24-1+0*24-2+1*24-3+0*24-4=10=A16

1
4. Conversia numerelor din bază 2n în bază 2
Fiecare cifră a numărului reprezentat în baza 2n se va reprezenta pe câte n poziţii binare.

13408=1 011 100 0002


Deoarece 8=23, atunci fiecare cifră a numărului va fi descompusă pe câte 3 poziţii binare.

1=0 0 12
3=0 1 12
4=1 0 02
0=0 0 02

1:2=0 rest 1 – cum trebuie reprezentat pe 3 poziţii binare, se vor mai adăuga 2 de zero

3:2=1 rest 1
1:2=0 rest 1 – cum trebuie reprezentat pe 3 poziţii binare, se vor mai adăuga 1 de zero

4:2=2 rest 0
2:2=1 rest 0
1:2=0 rest 1

0:0=0 rest 0
5. Conversia numerelor zecimale din bază 10 în orice bază
Partea întreagă a numărului se va împărţi la baza în care se doreşte transformat până când
ultimul cât este 0 şi se citesc resturile de la sfârşit la început.
Partea zecimală a numărului se va înmulţi cu baza în care se doreşte transformat până când
se obţine parte întreagă. Înmulţirea se va realiza întotdeauna cu partea zecimală a numărului,
partea întreagă fiind păstrată. Citirea părţilor întregi se face se la început la sfârşit.

567,45=237.733…16

567:16=35 rest 7
35:16=2 rest 3
2:16=0 rest 2

0,45*16=7,2->7
0,2*16=3,2->3

34,25=202.14

34:4=8 rest 2
8:4=2 rest 0
2:4=0 rest 2

0,25*4=1

6. Conversia numerelor zecimale din orice bază în bază 10


Se foloseşte următoarea formulă:
n −1 n −2 −1 −2 −m
N b = a1b + a2b + ... + a n b + c1b
0
+ c2b + ... + c m b , unde N – este numărul

2
reprezentat în baza b, b – baza în care este reprezentat numărul, n – numărul de poziţii pe care
este reprezentat numărul, ai – elementul aflat pe poziţia i a părţii întregi, cj – elementul aflat
pe poziţia j a părţii zecimale, m – numărul de elemente ale părţii zecimale.

3FC.4816=3*163-1+F*163-2+C*163-3+4*16-1+8*16-2=3*256+15*16+12*16+4/16+8/162=1020,28125

Codificarea numerelor întregi

Codificarea numerelor întregi se realizează pe octeţi (1octet=8 poziţii binare). În cazul în care
cu bitul de semn se depăşeşte un octet se va continua cu 2 octeţi şi aşa mai departe.

1. Codificarea în mărime şi semn (cod direct)


Pentru numerele pozitive, se va trece bitul de semn (0), urmat de reprezentarea în binar a
numărului.
Pentru numerele negative, se va trece bitul de semn (1), urmat de reprezentarea în binar a
numărului.

+32=00100000
-154=1000000010011000

Primul bit îngroşat este bitul de semn, următorii biţi înclinaţi sunt poziţiile de 0 adăugate
pentru a completa octetul sau în cazul numărului negativ, cei 2 octeţi.

32:2=16 rest 0
16:2=8 rest 0
8:2=4 rest 0
4:2=2 rest 0
2:2=1 rest 0
1:2=0 rest 1

1542:2=76 rest 0
76:2=38 rest 0
38:2=19 rest 0
19:2=9 rest 1
9:2=4 rest 1
4:2=2 rest 0
2:2=1 rest 0
1:2=0 rest 1
2. Codificarea în complement faţă de 1 (cod invers)
Pentru numerele pozitive, se va păstra reprezentarea în mărime şi semn.
Pentru numerele negative, se va păstra bitul de semn, iar celelalte poziţii binare devin
complementare (0 va deveni 1 şi invers).

+32=00100000
-154=1111111101100111

3. Codificarea în complement faţă de 2 (cod complementar)


Pentru numerele pozitive, se va păstra reprezentarea în mărime şi semn.

3
Pentru numerele negative, se va porni de la reprezentarea în complement faţă de 1 şi se va
aduna în mod binar 1.

+32=00100000
-154=1111111101101000

Adunarea în binar
1110011001+
1011101111
___________
11010001000

Deoarece 1+1=2 şi în sistem binar nu există, atunci această valoare se va reprezenta în binar şi
se va obţine că 2=102. Se va trece ultima poziţie a numărului reprezentat în binar şi cealaltă
poziţie se va reţine şi se va aduna cu rezultatul adunării următoare.

Codificarea numerelor reale – reprezentarea numerelor în virgulă mobilă

P1. Se reprezintă numărul în binar, conform regulilor de conversie prezentate mai sus;
P2. Se aduce numărul în formă normalizată: N b = ±1.M * 2 ±E , unde N – este numărul
reprezentat în binar, M – reprezintă mantisa sau partea subunitară a numărului, E – este
exponentul şi are valoarea rezultată după mutarea virgulei la stânga sau la dreapta numărului.
P3. Se calculează caracteristica:
a. dacă se reprezintă în virgulă mobilă simplă precizie (vmsp) C=E+127
b. dacă se reprezintă în virgulă mobilă dublă precizie (vmdp) C=E+1023
P4. Se reprezintă caracteristica în binar
P5. Se reprezintă numărul în virgulă mobilă
a. dacă se reprezintă în vmsp
1. primul bit este bit-ul de semn: 0 pentru pozitive şi 1 pentru negative
2. următorii 8 biţi reprezintă caracteristica în binar
3. restul de 23 de biţi reprezintă mantisa
b. dacă se reprezintă în vmdp
1. primul bit este bit-ul de semn: 0 pentru pozitive şi 1 pentru negative
2. următorii 11 biţi reprezintă caracteristica în binar
3. restul de 52 de biţi reprezintă mantisa

Să se reprezinte în virgulă mobilă simplă precizie: +234,45=?

P1. se reprezintă numărul în binar


234,45=11101010.01110011001100112

234:2=117 rest 0
117:2=58 rest 1
58:2=29 rest 0
29:2=14 rest 1
14:2=7 rest 0
7:2=3 rest 1
3:2=1 rest 1
1:2=0 rest 1

4
0,45*2=0,9->0
0,9*2=1,8->1
0,8*2=1,6->1
0,6*2=1,2->1
0,2*2=0,4->0
0,4*2=0,8->0
se repetă de la 0,8*2

P2. se aduce numărul în formă normalizată mutându-se virgula până unde prima poziţie este 1
234,45=11101010.0111001100110011=1.11010100111001100110011*27

P3. se calculează caracteristica şi având în vedere că se reprezintă în vmsp, atunci se va aduna


la exponent, numărul 127
C=E+127=7*127=134

P4. Se reprezintă în binar caracteristica


134=100001102

134:2=67 rest 0
67:2=33 rest 1
33:2=16 rest 1
16:2=8 rest 0
8:2=4 rest 0
4:2=2 rest 0
2:2=1 rest 0
1:2=0 rest 1

P5. se reprezintă numărul în virgulă mobilă simplă precizie (vmsp)

234,45=0 10000110 11010100111001100110011

Îngroşat – bit de semn


Înclinat – caracteristica reprezentată în binar
Subliniat – mantisa (partea subunitară a numărului adus în forma normalizată – s-a subliniat la
pasul 2)