vineri, 3 ianuarie 2014

Baze de numerație

Bază de numerație
Sistem
Bază
2
3
4
8
10
12
16
20
60
Baza unui sistem de numerație pozițional se definește ca fiind numărul unităților de același ordin de mărime care formează o unitate de ordin imediat superior. Altfel spus, baza unui sistem de numerație reprezintă numărul de semne distincte necesare scrierii unui număr. Teoretic, există o mulțime de baze de numerație, dar numai câteva s-au impus și sunt folosite curent în viața de zi cu zi (baza de numerație zecimală și hexazecimală) sau în unele domenii specifice (baza de numerație binară, octală, hexazecimală).
Orice sistem de numerație pozițional are asociat o bază de numerație definită prin:
  • un număr întreg de simboluri (cifre, grup de cifre, litere, combinație de cifre și litere, semne, etc.) folosite pentru reprezentarea numerelor în sistemul de numerație respectiv, și care dă și denumirea acestuia precum și a bazei de numerație asociate lui;
  • regula de reprezentare a numerelor în acest sistem, unică pentru toate bazele de numerație existente.
Notații folosite
Întrucât majoritatea bazelor de numerație folosesc ca simboluri cifrele arabe și literele alfabetului latin este necesară o notație care să indice baza folosită pentru reprezentarea unui număr. De obicei aceasta se notează ca un subindice între paranteze rotunde, de ex. 354(7) (354 în baza 7), iar pentru bazele „2”, „8” și „16” se pot utiliza alternativ literele „b” (de la binar), „o” (de la octal) respectiv „h” (de la hexazecimal). Există și alte convenții de notare a bazei de numerație folosită. De exemplu, la numărul 55 scris în sistemul hexazecimal se adaugă fie un prefix „0x” (rezultând notația 0x55), fie un sufix „h” (rezultând notația 55h). Valorile numerice pentru care nu se specifică baza de numerație se consideră de regulă că sunt scrise în baza de numerație octala.
Numărul de semne folosite
Orice număr întreg, superior sau egal cu 2 poate fi o bază de numerație. Dacă „b” este o bază de numerație, sistemul de numerație are „n” simboluri de la „0” la „n-1”. Pentru sisteme de numerație cu baza mai mare ca 10 se folosesc și alte semne în afara cifrelor arabe, de exemplu litere (în sistemul de numerație hexazecimal).
Regula de reprezentare a unui număr
Într-un sistem de numerație pozițional, orice număr este reprezentat printr-un șir de simboluri (cele din care se compune baza de numerație). Fiecare poziție a unui simbol în număr are o anumităpondereValoarea numărului este suma ponderată a simbolurilor din care este format numărul.
În teoria numerelor se demonstrează că dacă „b” este baza de numerație (cu b>1 și Description: b\in\N, atunci pentru Description: \forall x\in\N, există în mod unic rangul Description: n\in\N * și numerele c0, c1 … cn , numitecifre în baza „b”, cu ci < b, pentru care:
  • x = cnbn , cn-1bn-1 , …. c1b + c0
  • Description: c_i \in \{ 0, 1, ..., b-1 \} pentru Description: 0{\le}i{\le}n
  • cn<>0
Reprezentarea numărului „x” în baza „b” va fi cncn-1 … c1...c0 .
Altfel spus, dată fiind o bază de numerație „b”, orice număr natural „x” se poate scrie ca o sumă de produse formate din cifrele ci (scrise în baza „b”) multiplicate cu puterea de rang corespunzător a bazei „b”.
În cazul general, dacă „x”este un număr real pozitiv, spunem că cncn-1 … c1c0, c-1c-2c-3 este reprezentarea numărului „x” în baza „b” dacă:
  • x = cnbn, cn-1bn-1, …. c1b + c0 + c-1b-1+c-2b-2...
  • Description: c_i \in \{0, 1, ..., b-1\}
  • cn<>0
  • pentru orice indice Description: k{\ge}0 există Description: j < k astfel ca Description: c_j < b-1(asigură unicitatea reprezentării)
În cazul numerelor fracționare, cifrele din dreapta virgulei vor avea ponderi corespunzătoare, date de exponenții negativi ai bazei. De exemplu, reprezentarea în baza 10 a numărului 1101,001 scris în baza 2 este:
1101,001(2)= 1*23+1*22+0*21+1*20+0*2-1+0*2-2+1*2-3= 13,125(10)
Conversia unui număr natural
Dat fiind un număr întreg (scris într-o bază oarecare b1), pentru scrierea lui într-o altă bază (b2) se împarte succesiv numărul scris în baza b1 la noua bază până când se obține câtul 0;
  • la prima împărțire se obține un cât Q0 și un rest r0
  • dacă Q0 este diferit de 0, câtul Q0 se împarte din nou la baza b2, obținându-se un nou cât Q1 și un nou rest r1 ș.a.m.d. până când câtul obținut este egal cu 0.
Reprezentarea în noua bază se obține prin scrierea resturilor (reprezentate în noua bază) în ordinea inversă obținerii lor și multiplicarea cu puterea corespunzătoare a bazei care este egală cu rangul operației. De exemplu, pentru reprezentarea numerelor 61 (10) în bazele „2” respectiv „16” vom avea:
Reprezentarea lui 61(10) în baza 2
Nr.
 :
Baza
=
Q
+
Rest în baza 10
Rest în baza 2
Rangul operatiei
61
 :
2
=
30
+
1(10)
1(2)
0
30
 :
2
=
15
+
0(10)
0(2)
1
15
 :
2
=
7
+
1(10)
1(2)
2
7
 :
2
=
3
+
1(10)
1(2)
3
3
 :
2
=
1
+
1(10)
1(2)
4
1
 :
2
=
0
+
1(10)
1(2)
5
61(10)=111101(2) = 1*25 + 1*24 + 1*23 + 1*22 + 0*21 + 1*20

Reprezentarea lui 61(10) în baza 16
Nr.
 :
Baza
=
Q
+
Rest în baza 10
Rest în baza 16
Rangul operatiei
61
 :
16
=
3
+
13(10)
D(16)
0
3
 :
16
=
0
+
3(10)
3(16)
1
61(10) =3D(16) = 3*161 + 13*160
Conversia unui număr fracționar
La conversia numerelor fracționare, se separă partea întreagă de partea fracționară și se vor face cele două conversii separat. Partea fracționară a unui număr se poate scrie sub forma:
Df = x-1b-1 + x-2b-2 + … + x-mb-m
Prin multiplicare cu „b” a membrilor ecuației de mai sus obținem:
b*Df = x-1 + x-2b-1 + … + x-mb-m+1
Se observă că partea întreagă a expresiei din membrul drept este x -1. Prin scăderea acestei valori și o nouă multiplicare cu „b” se obține coeficientul x -2 ca parte întreagă a expresiei rezultate în membrul drept:
b*(b*Df - x-1) = x-2 + x-3b-1 + … + x-mb-m+2
Se continuă aceste calcule atât timp cât multiplicăm cu „b” numere diferite de 0. Este posibil ca în unele situații, operația de convertire să nu se termine niciodată și din acest motiv, un alt criteriu de oprire este precizia acceptată a reprezentării. De exemplu, pentru reprezentarea în baza 10 a numărului 1101,001 scris în baza 2 se parcurg următorii pași:
Reprezentarea lui 0,61(10) în baza 2
0,61
x
2
=
1,22
=
1(10)
1(2)
0,22
x
2
=
0,44
=
0(10)
0(2)
0,44
x
2
=
0,88
=
0(10)
0(2)
0,88
x
2
=
1,76
=
1(10)
1(2)
0,76
x
2
=
1,52
=
1(10)
1(2)
0,52
x
2
=
1,04
=
1(10)
1(2)
0,04
x
2
=
0,08
=
0(10)
0(2)
0,61(10) = 0,1001110…(2)
Reprezentarea numărului în noua bază se face prin scrierea succesivă a părții întregi obținute, în ordinea succesivă a operațiilor:
1101,001(2) = 1*23+1*22+0*21+1*20+0*2-1+0*2-2+1*2-3 = 13,125(10)

Niciun comentariu:

Trimiteți un comentariu