Sunteți pe pagina 1din 10

Lucrarea 1.

Reprezentarea numerelor

1. Sisteme de numere poziţionale

Sistemele de numere poziţionale sunt sistemele în care numerele sunt reprezentate


printr-un şir de cifre, unde fiecărei poziţii din şir îi este asociată o pondere. Valoarea
numărului este dată de suma cifrelor înmulţite cu ponderea aferentă.
Un număr N într-un sistem poziţional sub forma N = bn −1bn − 2 ...b1b0 .b−1b−2 ...bm −1 , iar
n −1
valoarea lui N este dată de relaţia N = ∑ bi * r i , unde r reprezintă radix-ul sau baza de
i =− m
numeraţie, iar bi reprezintă cifrele în baza r ( 0 ≤ bi < r ).

Numere reprezentate în sisteme poziţionale în bazele 10 şi 2


N1 = 173410 = 1*103 + 7 *102 + 3*101 + 4 *100
N 2 = 45.63510 = 4 *101 + 5 *100 + 6 *10−1 + 3*10−2 + 5 *10−3
N 3 = 100112 = 1* 24 + 0 * 23 + 0 * 22 + 1* 21 + 1* 20 = 1910
N 4 = 10.0012 = 1* 21 + 0 * 20 + 0 * 2−1 + 0 * 2−2 + 1* 2−3 = 2.12510

1.1 Baze de numeraţie

După cum am văzut în paragraful anterior, un rol Cifra Valoare


important în reprezentarea numerelor în sisteme hexazecimală zecimală
poziţionale îl are radix-ul sau baza de numeraţie. În viaţa A 10
de zi cu zi, baza de numeraţie folosită este 10, ce B 11
corespunde sistemului zecimal. Baza 10 cuprinde cifrele
C 12
0,1,2,3,4,5,6,7,8,9. Numerele N1 si N2 din Exemplu 1
D 13
sunt numere reprezentate în baza 10. În sistemele digitale
este folosit sistemul binar ce corspunde bazei de E 14
numeraţie 2. Aceasta cuprinde două cifre: 0 şi 1. F 15
Numerele N3 şi N4 din Exemplul 1 sunt reprezentate în Tabelul 1.1
baza 2. O alta bază de numeraţie uzual folosită este şi baza 16, ce corespunde sistemului
hexazecimal. Acest sistem cuprinde 16 cifre: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Corespondentul zecimal al cifrelor hexazecimale este prezentat în Tabelul 1.1.

1.2 Conversii între baze de numeraţie


1.2.1 Conversia din bazele 2 şi 16 în baza 10
n −1
Conversia din baza 2, respectiv 16, se face conform formulei N = ∑ bi * r i , unde bi
i =− m
reprezintă cifra binară, respectiv hexazecimală, iar r este 2 sau 16.

Conversii din baza 2 şi 16 în baza 10


N 5 = 1100112 = 1* 25 + 1* 24 + 0 * 23 + 0 * 22 + 1* 21 + 1* 20 = 5110
N 6 = 110.0112 = 1* 22 + 1* 21 + 0 * 20 + 0 * 2−1 + 1* 2−2 + 1* 2−3 = 6.37510
N 7 = 36 B16 = 3*162 + 6 *161 + 11*160 = 87510
N 8 = 1D. A16 = 1*161 + 13*160 + 10 *16−1 = 29.62510

1.2.2 Conversia din baza 10 în baza 2 şi 16

Conversia unui număr întreg din baza 10 în altă bază se face prin algoritmul de
împărţiri succesive. Astfel numărul N reprezentat în baza 10 se împarte la noua bază în
mod succesive, până când se obţine câtul 0. Resturile obţinute în urma împărţirilor se reţin,
ele constituind cifrele reprezentării în noua bază. Ultimul rest obţinut reprezintă cifra cea
mai semnificativă a noii reprezentări, primul rest obţinut fiind cifra cea mai puţin
semnificativă a noii reprezentări ( b0 ).

Conversia numărului 73 din baza 10 în baza 2


N 9 = 7310 = 10010012
73/ 2 = 36 rest 1 b0
36 / 2 = 18 rest 0 b1
18 / 2 = 9 rest 0 b2
9/2 = 4 rest 1 b3
4/ 2 = 2 rest 0 b4
2/ 2 =1 rest 0 b5
1/ 2 = 0 rest 1 b6

În ceea ce priveşte conversia numerele fracţionare reprezentate în baza 10 în altă bază,


aceasta se face prin algoritmul de înmulţiri succesive. Astfel partea fracţionară a numărul
reprezentat în sistemul zecimal se înmulţeste cu noua bază în mod succesiv până se obţine
partea fracţionară zero. Părţile întregi obţinute în urma înmulţirilor se reţin, ele constituind
cifrele reprezentării în noua bază. Ultima parte intreagă obţinută reprezintă cifra cea mai
puţin semnificativă a noii reprezentări, prima fiind cifra cea mai semnificativă a noii
reprezentări ( b−1 ).
Zecimal Binar Hexazeci
mal
0 0000 0
Conversia numărului 0.8125 din baza 10 în baza 1 0001 1
2 2 0010 2
N10 = 0.812510 = 0.11012 3 0011 3
0.8125* 2 = 1.625 parte întreagă 1 b−1 4 0100 4
0.625* 2 = 1.25 parte întreagă 1 b−2 5 0101 5
6 0110 6
0.25* 2 = 0.5 parte întreagă 0 b−3 7 0111 7
0.5* 2 = 1 parte întreagă 1 b−4 8 1000 8
9 1001 9
Pentru numere ce au atât parte întreagă, cât şi parte 10 1010 A
fracţionară, conversia se va face separat pentru partea 11 1011 B
întreagă şi pentru partea fracţionară. 12 1100 C
13 1101 D
14 1110 E
1.2.3. Conversia din baza 2 în baza 16 15 1111 F
Tabelul 1.2
Pentru conversia numerelor reprezentate în baza 2 în
baza 16 se vor parcurge următorii paşi:
1. Se partiţionează numărul binar în grupuri de patru cifre binare, pornind de la
virgulă, spre dreapta sau stânga. Dacă cifrele cele mai din dreapta, respectiv cele
mai din stânga nu se pot grupa câte patru, se vor adăuga zerouri în poziţiile cel mai
semnificative (care nu vor modifica valoarea numărului).
2. Fiecare din grupurile de câte patru cifre binare corespunde unei singure cifre
hexazecimale, conform tabelului 1.2.
Pentru conversia numerelor din baza 16 în baza 2 se procedează la înlocuirea fiecărei cifre
hexazecimale cu grupuri de câte patru cifre binare, conform tabelului 1.2.
Conversii din baza 2 în baza 16 şi invers
N11 = 1010010012 = 0001_ 0100 _1001 = 14916
N12 = 11011.0112 = 0001_1011.0110 = 1B.616
N13 = 5 A16 = 01011010 = 10110102
N14 = 32.E16 = 00110010.1110 = 110010.1112

2. Reprezentarea numerelor fără semn

Sistemele digitale sunt realizate din circuite ce procesează cifrele binare „0” şi „1”.
Din acest motiv, sistemul folosit în calculul digital este cel binar. Numerele fără semn se
prezintă ca un şir de „0” şi „1”. Fiecare cifră binară poartă denumirea de bit (binary digit).
n −1
Valoarea şirului binar N = bn −1bn− 2 ...b1b0 .b−1b−2 ...bm −1 este dată de formula N = ∑ bi * 2i ,
i =− m
unde bi poate lua valorile „0” sau „1”.

3. Reprezentarea numerelor cu semn

Pentru reprezentarea numerelor cu semn, se alocă bitul cel mai semnificativ (cel mai
din stânga – most significant bit - MSB) semnului, „0” fiind folosit pentru numere
pozitive, iar „1” pentru numere negative. În mod uzual, în sistemele de calcul se operează
fie cu numere întregi, fie cu numere fracţionare. Din acest motiv, poziţia virgulei este
considerată implicit după cum urmează:
- pentru numere întregi poziţia virgulei este la dreapta bitului cel mai puţin
semnificativ; astfel un număr întreg va avea forma bn −1bn − 2 ...b1b0 . unde bn −1 este
bitul de semn
- pentru numere fracţionare poziţia virgulei este la dreapta bitului cel mai
semnificativ, care este şi bitul de semn; astfel un număr fracţionar va avea forma
b0 .b−1...b− n +1b− n unde b0 este bitul de semn
În ceea ce priveşte reprezentarea numerelor cu semn există trei formate de reprezentare:
formatul semn-mărime, formatul complement de 1, formatul complement de 2.

3.1 Formatul semn-mărime

Numerele în formatul semn-mărime se reprezintă în felul următor: bitul cel mai


semnificativ reprezintă semnul numărului, iar restul biţilor alcătuiesc partea de
magnitudine (mărime) . Astfel numerele întregi au forma N= Sbn − 2 ...b1b0 iar pentru
numere fracţionare N= S .b−1...b− n +1b− n , unde S reprezintă semnul iar bi sunt biţii
magnitudine.

Semn Marime
+ 25 = 0 1 1 0 0 1
- 25 = 1 1 1 0 0 1

În ceea ce priveşte domeniul valoric a reprezentării în formatul semn-mărime acesta


este între - 2n−1 + 1 şi 2n−1 − 1 pentru numere întregi.
Avantaje:
- simplitate
- negare simpla prin schimbarea bitului de semn
- implementare favorabilă a operaţiei de înmulţire
Dezavantaje:
- există două reprezentări pentru numărul zero (pentru un numar reprezentat pe 6
biţi avem 0 00000, respectiv 1 00000), deci testare pentru zero se va face de două
ori
- implementare dificilă a operaţia de adunare a două numere reprezentate în
formatul semn-mărime, aşa cum este prezentat în Exemplul 7 (cazurile b, c şi d).

+ 2 = 0 0 1 0 + - 2 = 1 0 1 0 +
+ 3 = 0 0 1 1 + 3 = 0 0 1 1
0 1 0 1 = +5 1 1 0 1 = -5 (!)
a. c.

- 2 = 1 0 1 0 + + 2 = 0 0 1 0 +
- 3 = 1 0 1 1 - 3 = 1 0 1 1
0 1 0 1 = +5 (!) 1 1 0 1 = -5 (!)
b. d.

Cele două operaţii, de testare a numărului zero, respectiv operaţia de adunare, sunt printre
cele mai frecvente şi importante operaţii în sistemele de calcul, din acest motiv trebuie
folosite alte formate de numere pentru reprezentarea numerelor cu semn, pentru
surmontarea acestor două dezavantaje majore.

3.2.Formatul complement de 1 (C1)

Numerele în formatul complement de 1 sunt reprezentate în felul următor: numerele


pozitive au aceeasi reprezentare ca şi numerele în formatul semn-mărime, iar numerele
negative sunt obţinute prin complementarea (negarea) fiecărei cifre reprezentarea în semn-
mărime. Astfel numerele în formatul complement de unu vor avea următoarea formă:
N= 0bn− 2 ...b1b0 pentru întregi, respectiv N= 0.b−1...b− n +1b− n pentru fracţionare, în cazeul
numerelor positive, respectiv N= 1bn − 2 ...b1 b0 pentru întregi, respectiv N= 1.b−1...b− n +1 b− n
pentru fracţionare, în cazul numerelor negative.

Semn Marime
+ 25 = 0 1 1 0 0 1
- 25 = 1 0 0 1 1 0

În ceea ce priveşte domeniul valoric al reprezentării în formatul complementului de 1,


acesta este identic cu cel al reprezentării numerelor în formatul semn-mărime, si anume,
între - 2n−1 + 1 şi 2n−1 − 1 pentru numere întregi .
Dezavantaje:
- formatul complement de unu nu este un format ponderat în conformitate cu notaţia
poziţională
- există două reprezentări pentru numărul zero (pentru un numar reprezentat pe 6
biţi avem 0 00000, respectiv 1 11111), deci testarea pentru zero se va face de două
ori
Avantaje:
- o implementare mai facilă a operaţiei de adunare comparativ cu formatul semn-
mărime, aşa cum este prezentat în Exemplul 9.
În ceea ce priveşte operaţia de adunare a două numere reprezentate în complement de unu,
cazul adunării a două numere pozitive nu prezintă deosebiri comparitiv cu formatul semn-
mărime (Exemplul 9, a). Un alt caz favorabil îl reprezintă şi acela a două numere de semne
contrare, iar numărul negativ mai mare în modul decăt numărul pozitiv (Exemplul 9, d). În
celalalte două cazuri (când numărul pozitiv e mai mare în modul decât numărul negativ -
9,c - sau când cele două numere sunt negative -9,b), rezultatul corect se obţine printr-o
adunare de corecţie la bitul cel mai puţin semnificativ a rezultatului a transportului ce
apare la biţii de semn (end around carry – EAC).
+ 2 = 0 0 1 0 + - 2 = 1 1 0 1 +
+ 3 = 0 0 1 1 + 3 = 0 0 1 1
0 1 0 1 = +5 1 0 0 0 0 +
EAC 1
0 0 0 1 = +1
a. c.

- 2 = 1 1 0 1 + + 2 = 0 0 1 0 +
- 3 = 1 1 0 0 - 3 = 1 1 0 0
1 1 0 0 1 + 1 1 1 0 = -1
EAC 1
1 0 1 0 = -5
b. d.

3.1 Formatul complement de 2 (C2)

Pentru înlăturarea celor două majore dezavantaje ale formatului semn-mărime se


apelează la formatul complement de 2. Un număr în formatul complement de 2 are
următoarea reprezentare: pentru numerele pozitive reprezentarea este identică cu cea din
formatul semn-mărime, iar numerele negative sunt obtinute din complementarea fiecărei
cifre a numărului pozitiv la care se adună valoarea 1. Astfel numerele în formatul
complement de doi vor avea următoarea formă: N= 0bn − 2 ...b1b0 pentru întregi, respectiv
N= 0.b−1...b− n +1b− n pentru fracţionare, în cazeul numerelor positive, respectiv
N= 1bn − 2 ...b1 b0 + 0.0...01 pentru întregi, respectiv N= 1.b−1...b− n +1 b− n + 0.0...01 pentru
fracţionare, în cazul numerelor negative.

Semn Marime
+ 25 = 0 1 1 0 0 1
- 25 = 1 0 0 1 1 1
În ceea ce priveşte domeniul valoric al reprezentării în formatul complementului de 1,
acesta este identic cu cel al reprezentării numerelor în formatul semn-mărime, si anume,
între - 2n−1 şi 2n−1 − 1 pentru numere întregi. Astfel se poate observa că în cazul
complementului de doi, domeniul valoric este asimetric, spre deosebire de formatele semn-
mărime şi complement de 1. Această asimetrie a domeniului valoric poartă numele de
anomalia complementului de doi si este subliniată în tabelul 1.3.

Număr zecimal Format SM Format C1 Format C2


+3 0 11 0 11 0 11
+2 0 10 0 10 0 10
+1 0 01 0 01 0 01
+0 0 00 0 00 0 00
-0 1 00 1 11
-1 1 01 1 10 1 11
-2 1 10 1 01 1 10
-3 1 11 1 00 1 01
-4 ---- ---- 1 00
Tabelul 1.3

Dezavantaje:
- format mai complicat, în comparaţie cu formatele semn-mărime şi complement de
unu
- formatul complement de doi nu este un format ponderat în conformitate cu notaţia
poziţională
- anomalia complementului de doi
Avantaje:
- numărul zero are o singură reprezentare (0 000), deci testarea numărului zero se
face o singură dată
- implementare facilă a operaţiei de adunare pentru numere reprezentate în formatul
complement de 2, aşa cum este prezentat în exemplul 11.

+ 2 = 0 0 1 0 + - 2 = 1 1 1 0 +
+ 3 = 0 0 1 1 + 3 = 0 0 1 1
0 1 0 1 = + 5 0 0 0 1 = + 1
a. c.

- 2 = 1 1 1 0 + + 2 = 0 0 1 0 +
- 3 = 1 1 0 1 - 3 = 1 1 0 1
1 0 1 1 = - 5 1 1 1 1 = - 1
b. d.
4. Exerciţii rezolvate

Se dau următoarele perechi de numere întregi: +23 şi +18, +23 şi -18, -23 şi +18,
respectiv -23 şi -18. Se cere:
a) Să se convertească numerele în formatele semn-mărime, complement de 1,
respectiv complement de 2.
b) Să se efectueze adunarea celor două numere.

Rezolvare
a)
Se realizează conversia numerelor 23 şi 18 din zecimal în binar:
23/2 = 11 rest 1 18/2 = 9 rest 0
11/2 = 5 rest 1 9/2 = 4 rest 1
5/2 = 2 rest 1 4/2 = 2 rest 0
2/2 = 1 rest 0 2/2 = 1 rest 0
1/2 = 0 rest 1 1/2 = 0 rest 1
2310 = 101112 1810 = 100102

Se va face reprezentarea acestor numere pe 7 biţi (1 bit de semn şi 6 biţi pentru


magnitudine).

Formatul +23 - 23 +18 - 18


Semn-Mărime 0 010111 1 010111 0 010010 1 010010
Complement de 1 0 010111 1 101000 0 010010 1 101101
Complement de 2 0 010111 1 101001 0 010010 1 101110
b)
Adunarea numerelor +23 cu +18 va fi aceeasi pentru toate formatele de numere.
+23 = 0 0 1 0 1 1 1 +
+18 = 0 0 1 0 0 1 0
0 1 0 1 0 0 1 = +41
În ceea ce priveşte adunarea numerelor +23 cu -18, -23 cu +18, respectiv -23 cu -18
aceasta nu se va putea realiza în formatul semn-mărime, ci doar în formatele complement
de unu şi complement de 2 astfel:
- pentru complement de unu
+23 = 0 0 1 0 1 1 1 +
-18 = 1 1 0 1 1 0 1
1 0 0 0 0 1 0 0 +
EAC 1
0 0 0 0 1 0 1 = +5
-23 = 1 1 0 1 0 0 0 +
+18 = 0 0 1 0 0 1 0
1 1 1 1 0 1 0

SM 1 0 0 0 1 0 1 = -5

-23 = 1 1 0 1 0 0 0 +
-18 = 1 1 0 1 1 0 1
1 1 0 1 0 1 0 1 +
EAC 1
1 0 1 0 1 1 0

SM 1 1 0 1 0 0 1 = +41

- pentru complement de doi


+23 = 0 0 1 0 1 1 1 +
-18 = 1 1 0 1 1 1 0
0 0 0 0 1 0 1 = +5

-23 = 1 1 0 1 0 0 1 +
+18 = 0 0 1 0 0 1 0
1 1 1 1 0 1 1
C1 1 1 1 1 0 1 0
SM 1 0 0 0 1 0 1 = -5

-23 = 1 1 0 1 0 0 1 +
-18 = 1 1 0 1 1 1 0
1 0 1 0 1 1 1 +
C1 1 0 1 0 1 1 0
SM 1 1 0 1 0 0 1 = -41

5. Exerciţii propuse

1. Să se realizeze conversia în formatele semn-mărime, complement de unu şi


complement de doi a următoarelor numere: 55, -55, 47, -47, 33, -33, 49, -49.
2. Să se efectueze adunarea în formatele semn-mărime, complement de unu şi
complement de doi a următoarelor perchi de numere: ±45 cu ±37, ±55 cu ±28, ±47
cu ±26, ±39 cu ±49.