Sunteți pe pagina 1din 8

Seminar Circuite Integrate Digitale

Zoltan Hascsi

ARITMETIC BINAR
Reprezentarea numerelor n sistemele de numeraie binar i hexazecimal;
Conversia de la o reprezentare la alta;
Reprezentarea numerelor negative;
Operaii aritmetice cu numere binare;
1.1 Reprezentarea numerelor n binar
ntr-un sistem de numeraie orice numr este reprezentat ca un ir de cifre, cifra cea mai
semnificativ (diferit de 0) fiind situat la stnga, dup care urmeaz celelalte cifre n ordinea
descresctoare a ponderilor (rangurilor) lor. Aceast reprezentare se bazeaz pe descompunerea
numrului dup puterile bazei acelui sistem de numeraie, fiecare cifr fiind un coeficient de
multiplicare al unei puteri a bazei (ponderea cifrei este chiar puterea respectiv a bazei).
Sistemul binar este cel mai simplu sistem de numeraie, avnd cea mai mic baz (2).
Fiecare putere a lui 2 poate fi nmulit cu una din cele dou cifre ale sistemului binar, 0 sau 1.
Este o descompunere foarte simpl a numrului, n care fiecare cifr semnific existena (1) sau
nu (0) a puterii bazei corespunztoare ponderii cifrei. Aceast semnificaie a cifrei, ntlnit i n
logica matematic, justific asocierea ei cu noiunea de bit de informaie, de unde i termenul
uzual de bit folosit pentru cifra binar.

N = bn1bn 2 b1b0

Bitul cel mai din stnga este cifra diferit de 0 cu ponderea cea mai mare (most significant
bit, MSB), iar ultimul bit corespunde celei mai mici puteri ce apare n descompunerea numrului
(least significant digit, LSB).
Numerele fracionare sunt cele n a cror descompunere apar i puteri negative ale bazei.
Partea fracionar a unui numr este format din toate puterile negative mpreun cu coeficienii
acestora. Prin convenie, cifrele puterilor pozitive (inclusiv puterea 0) sunt delimitate de cifrele
puterilor negative printr-un punct (punctul zecimal n reprezentarea zecimal).

N = bn1bn 2 b1b0 . b1b2 b m

1.2 Reprezentarea numerelor n hexazecimal


n sistemul hexazecimal numerele sunt reprezentate conform descompunerii lor dup
puterile lui 16. Fiecare putere a lui 16 are drept coeficient de multiplicare un numr natural cuprins
ntre 0 i 15. Aadar, pentru a reprezenta cifrele sistemului hexazecimal avem nevoie de 16
simboluri: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Cifrele unui numr oarecare, N, n reprezentarea hexazecimal se ordoneaz de la stnga la
dreapta, n ordinea descresctoare a ponderilor acestora, ncepnd cu cea mai semnificativ cifr
diferit de 0:

N = hp1hp 2 h1h0. h1h2 h r

Un numr are n forma hexazecimal mai puine cifre dect n forma binar (aproximativ de 4
ori), deoarece descompunerea dup puterile lui 16 conine un numr mai mic de termeni diferii de
0 (o cifr hexazecimal conine de patru ori mai mult informaie dect o cifr binar: 16 = 24.
Aceast observaie nu este ns generalizabil pentru orice dou sisteme de reprezentare. De
exemplu numrul 2.6875 poate fi scris 10.1011 n binar, 2.B n hexazecimal, dar nu poate fi
reprezentat cu un numr finit de cifre n baza 3 (2.200120012...).
2.1 Conversia numerelor din binar / hexazecimal n zecimal
Un numr scris n binar sau n hexazecimal poate fi uor convertit n forma zecimal: se
adun toi termenii nenuli ai descompunerii n baza iniial (adunare care se face n sistemul
zecimal). Fiecare termen este produsul dintre o cifr i puterea bazei care corespunde ponderii
cifrei (produsul fiind aplicat conform regulilor de nmulire n sistem zecimal). Toate cifrele vor fi
transformate n numere zecimale (A hexazecimal devine 10, B hexazecimal devine 11, .a.m.d.).
Pentru un numr N reprezentat n binar:

Seminar Circuite Integrate Digitale

N=

2i

Zoltan Hascsi

sau

i ,bi 0

N = bn1 2n1 +... + b1 21 + b0 20 +... + b m 2 m

iar pentru trecerea din hexazecimal n zecimal:

N=

hi 16i

sau

i ,hi 0

Exemplu

N = hp1 16p1 +... + h1 161 + h0 160 +... + h r 16 r

N = 10100111.111 n binar. Acest numr este n sistemul zecimal:


N = 27+25+22+21+20+2-1+2-2+2-3 = 167.875

Exemplu

N = A7.E n hexazecimal. Rescriindu-l sub form zecimal el va fi:


N = 10161+7160+1416-1 = 167.875

Numrul N are n forma binar 11 cifre, iar n forma hexazecimal numai 3.


Este mult mai elegant scrierea lui cu cifre hexazecimale, ns trebuie tiut c dei
numerele hexazecimale apar foarte des n diverse programe, de la cele scrise n
asamblor pn la cele de nivel nalt, forma n care apar aceste numere n interiorul
calculatoarelor este ntotdeauna cea binar.

2.2 Conversia numerelor din zecimal n binar / hexazecimal


Algoritmul de conversie este identic pentru ambele cazuri. Partea ntreag i partea
fracionar a numrului se trateaz separat.
Conversia prii ntregi a numrului se face prin mpriri repetate la baza n care se dorete
noua reprezentare, reinnd de fiecare dat restul mpririi. Resturile mpririlor vor fi chiar cifrele
cutate. Restul primei mpriri este ultima cifr a prii ntregi, cifra de rang 0. mprind acum
ctul se obine ca rest cifra de rang 1. Noul ct se mparte la rndul lui, obinndu-se cifra de
pondere 2. Algoritmul de conversie a prii ntregi se termin cnd ctul obinut este 0, restul
ultimei mpriri fiind cea mai semnificativ cifr a reprezentrii n noua baz.
Iat i o justificare teoretic a algoritmului de conversie a unui numr ntreg:

N = bn1 2n1 +... + b1 21 + b0 20


N = 2 bn1 2n 2 +... + b1 20 + b0 = N1 + b0
N1 = 2 bn1 2n 3 + ... + b2 20 + b1 = N 2 + b1
......

N n1 = 2 0 = bn1
Exemplu

S se afle reprezentarea binar a numrului zecimal 167.


167/2 = 83
83/2 = 41
41/2 = 20
20/2 = 10
10/2 = 5
5/2 = 2
2/2 = 1
1/2 = 0

rest 1 LSB
rest 1
rest 1
rest 0
rest 0
rest 1
rest 0
rest 1 MSB

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Citind de jos n sus cifrele binare, N = 10100111


Exemplu

S se afle reprezentarea hexazecimal a numrului zecimal 46546.


46546/16 = 2909
2909/16 = 181
181/16 = 11
11/16 =
0

rest 2
rest 13
rest 5
rest 11

Citind cifrele de jos n sus i nlocuindu-le cu simbolurile hexazecimale, N =


B5D2
Conversia prii fracionare a unui numr zecimal se face prin nmuliri repetate cu baza n
care se dorete noua reprezentare. La fiecare pas se reine drept cifr partea ntreag a
rezultatului, conversia continund cu partea fracionar rmas. Partea ntreag a rezultatului
primei nmuliri este prima cifr dup punctul zecimal. La a doua nmulire se obine a doua cifr,
.a.m.d.. Algoritmul se termin cnd se obine un rezultat ntreg (cu parte fracionar nul). Pentru
unele numere conversia poate avea un numr infinit de pai, n practic ea terminndu-se odat cu
obinerea unui numr dorit de cifre (cea mai puin semnificativ cifr corespunde preciziei de
reprezentare a numrului):

N = b1 21 + b2 22 +... + b m 2 m +...
N 2 = b1 + b2 21 +... + b m 2 m+1 +... = b1 + N1
N1 2 = b2 + b3 21 +... + b m 2 m+ 2 +... = b2 + N 2

. . . . . .
Exemplu

S se afle reprezentarea binar a numrului zecimal 0.875.


0.875 2 = 1.75 = 0.75 + 1
0.75 2 = 1.5 = 0.5 + 1
0.5 2 = 1
=0
+1
Citind cifrele de sus n jos, N = 0.111

Exemplu

S se afle reprezentarea hexazecimal a numrului zecimal 0.529


0.529 16 = 8.464
0.464 16 = 7.424
0.424 16 = 6.784
0.784 16 = 12.544
......

= 0.464 + 8
= 0.424 + 7
= 0.784 + 6
= 0.544 + 12

Citind cifrele hexazecimale de sus n jos, N = 0.876C... Numrul


hexazecimal N' = 0.876C este o aproximare a numrului N. Precizia de aproximare
este mai bun de 16-4 . Cum ne convingem? Dac aproximarea N' a unui numr N
are m cifre dup punctul zecimal, atunci eroarea de aproximare este mai bun de
B-m unde B este baza n care este reprezentat numrul N' (suma tuturor
termenilor lui N care au puteri mai mici dect -m este cel mult egal cu B-m).
Numrul hexazecimal 0.876 este n zecimal N' = 0.52880859375. Astfel N
scris n hexazecimal cu numai 3 cifre dup punctul zecimal difer de numrul N
prin 0.00019140625, eroare mai mic de 16-3 = 0.00024...
Atenie: conversia din zecimal n binar sau n hexazecimal nu este totdeauna exact!

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Conversia unui numr oarecare se face separat pentru partea ntreag i pentru partea
fracionar.

Exemplu

S se afle reprezentarea binar a numrului zecimal 167.875.

167 devine n binar 10100111, 0.875 devine n binar 0.111, iar 167.875 n
binar se obine prin concatenarea celor dou pri: 10100111.111
2.3 Conversia numerelor din binar n hexazecimal
Se bazeaz pe faptul c 16 este o putere ntreag a lui 2. Un numr binar de cel mult 4 cifre
poate fi reprezentat printr-o singur cifr hexazecimal (1111 este F n hexazecimal, 110 este 6 n
hexazecimal, etc.). Orice grup de patru termeni ai unei descompuneri binare ce are forma

b4i +3 243+3 + b4i + 2 24i + 2 + b4i +1 24i +1 + b4i 24i

corespunde unui singur termen din reprezentarea hexazecimal a acelui numr, hi 16i.
Conversia se face foarte simplu. Toate cifrele binare se grupeaz cte patru ncepnd de la
punctul zecimal, att nspre stnga (cifrele prii ntregi), ct i nspre dreapta (cifrele prii
fracionare). Dac numrul de cifre nu este multiplu de patru, se completeaz grupurile de cifre
aflate la extreme cu zerouri. Fiecare grup de patru cifre binare se nlocuiete cu cifra hexazecimal
corespunztoare i conversia e gata!
Exemplu

S se afle reprezentarea hexazecimal a numrului binar 10100111.111.


N = 1010 0111 . 1110
A
7
E
N = A7.E
Ultimul grup de 3 cifre de dup punctul zecimal s-a completat cu un 0. Mare
grij s nu se uite completarea cifrelor prii fracionare! (111 este 7, iar 1110 este
E).

2.4 Conversia numerelor din hexazecimal n binar


Se bazeaz pe descompunerea oricrei cifre hexazecimale ca o sum de patru termeni
binari, i pe faptul c 16 este o putere a lui 2:

hi = b4i +3 24i +3 + b4i + 2 24i + 2 + b4i +1 24i +1 + b4i 24i

Un numr hexazecimal se convertete n binar prin simpla nlocuire a fiecrei cifre


hexazecimale cu reprezentarea ei n binar dup primele patru puteri ale lui 2 (codul binar pe patru
bii al cifrei). Astfel, 0 devine 0000, 1 devine 0001,....F devine 1111.
Exemplu

S se afle reprezentarea binar a numrului hexazecimal 7A.E6.


N= 7
A . E
6
N = 0111 1010 . 1110 0110
Renunnd la zerourile inutile se obine forma binar a numrului,
N = 1111010.1110011 .

Seminar Circuite Integrate Digitale

Zoltan Hascsi

3.1 Adunarea n binar


nainte de toate iat tabla adunrii n baza 2:
0
0
1
1

+
+
+
+

0
1
0
1

= 0
= 1
= 1
= 10

Rezultatul adunrii de pe ultima linie (1 + 1) este scris pe doi bii deoarece 1 + 1 = 2, iar 2 n
binar se scrie 102.
Dou numere binare se adun dup binecunoscutul algoritm din clasele primare. Se adun
cifrele de acelai rang. Dac apare transport la adunarea a dou cifre, acesta se adun mpreun
cu cifrele de rang imediat superior.
Exemplu
10010 +
18 +
10111
23
101001
41
3.2 Scderea n binar
Iat i regulile de scdere a dou cifre binare:
00=0
0 1 = 1 mprumut 1
10=1
11=0
i la scdere algoritmul este cel folosit la scderea numerelor zecimale. Se scad cifrele de
acelai rang, iar dac la scderea a dou cifre este nevoie de un mprunut, acesta se scade din
cifra de rang imediat superior a desczutului.
Exemplu
10111
23
10010
18
00101
5
Exemplu

10010
111
1011

18
7
11

3.3 nmulirea cu 2

N = bn1 2n1 +... + b1 21 + b0 20 +... + b m 2 m


N 2 = bn1 2n +... + b0 21 + b1 20 +... + b m 2 m+1

N = bn1 b1b0 . b1b2 b m


N = bn1 b1b0b1. b2 b m

nmulirea unui numr cu 2 poate fi interpretat ca o deplasare cu o cifr la dreapta a


punctului zecimal n reprezentarea binar a numrului. n mod analog, mprirea unui numr la 2
este n binar o deplasare a punctului zecimal cu o cifr la stnga.
Exemplu
N = 10100111.111
N = 167.875
N 2 = 101001111.11
N 2 = 335.75
3.4 nmulirea numerelor n binar
Din nou ne ntlnim cu lucruri tiute nc din coala primar. Tabla nmulirii n binar este
surprinztor de simpl (surpriza este i mai mare dac ne dm seama c n coala primar
nvam o tabl a nmulirii cu 100 de combinaii, pe cnd cea de fa are numai...4):
0 0 = 0
0 1 = 0
1 0 = 0
1 1 = 1
Dac A este denmulitul i B este nmulitorul, nmulirea se poate descompune n civa
pai simpli. Fiecare cifr a nmulitorului se nmulete cu ntreg denmulitul i cu puterea lui 2
corespunztoare ponderii cifrei. Rezultatul nsumrii tuturor acestor produse reprezint chiar
rezultatul final. Cum n binar nmulirea cu 2 este o shiftare la stnga a numrului fa de punctul

Seminar Circuite Integrate Digitale

Zoltan Hascsi

zecimal (sau altfel spus, o deplasare la dreapta cu o cifr a punctului zecimal), iar cifra binar este
0 sau 1, nmulirea n binar se rezum la o serie de shiftri i adunri. Pentru a simplifica i mai
mult imaginea putem s lum n considerare doar cifrele nmulitorului diferite de 0.
Exemplu
10111
10010
00000
10111
00000
00000
10111 ___
110011110

b0
b1
b2
b3
b4

=0
=1
=0
=0
=1

23
18
414

4.1 Reprezentarea numerelor binare pozitive i negative


Trei reprezentri n binar sunt ntlnite mai des n tehnica de calcul:
- semn i modul;
- complement fa de 1;
- complement fa de 2;
n toate cele trei reprezentri primul bit (MSB) este i bit de semn. n interiorul calculatorului,
un numr are o reprezentare mai rigid, avnd un numr fixat de cifre (bii). Chiar dac cele mai
semnificative cifre sunt 0 ele exist ca atare n reprezentarea intern, de aceea, cnd ne vom
referi la cel mai semnificativ bit (MSB), vom nelege bitul cel mai din stnga al reprezentrii interne
(chiar dac acesta este 0). n toate cele trei cazuri un numr negativ are bitul MSB egal cu 1.
4.2 Reprezentarea numerelor binare n complement fa de 2
Este reprezentarea consacrat n tehnica digital datorit simplitii operrii cu aceste
numere.
Vom considera o reprezentare intern pe n bii. Fie A un numr pozitiv (bitul cel mai
semnificativ al acestuia este 0). Complementul fa de 2 al acestuia este Ac = 2n+1 A i este
chiar inversul lui A (A) n aceast reprezentare. Evident, complementul lui Ac este chiar A. Cum
se afl complementul fa de 2 al unui numr n binar?

A = an1.... a1a0
A ' = a'n1 .... a'1 a'0

(A' este chiar complementul fa de 1 al lui A i se obine inversnd fiecare cifr a lui A.)

A + A ' = 1...11= 2n 1
A + A ' +1 = 2n
de unde rezult

Ac = A' + 1
Exemplu

Considerm o reprezentare pe 5 bii a numerelor.


Numrul 1 este 00001 n aceast reprezentare, iar inversul lui (1) este:
1' +1 = 11110 + 1 = 11111.
Numrul 12 este 01100 n aceast reprezentare, iar inversul lui (12) este:
(12)' +1 = 10011 + 1 = 10100.
Numrul 7 este 11001 n aceast reprezentare, iar inversul lui (+7) este:
(7)' +1 = 00110 + 1 = 00111.
Numrul 16 ar avea reprezentarea binar 10000 i ar fi egal cu propriul
complement, de aceea combinaia binar 10000 nu are semnificaie n
reprezentarea pe 5 bii (se consider eroare):
16 este (16)' + 1 = 01111 + 1 = 10000
Complementul lui 0 este 11111 + 1 = 100000, adic tot 0 dac eliminm al
aselea bit care a aprut dup complementare.

Seminar Circuite Integrate Digitale

Zoltan Hascsi

ntr-o reprezentare pe n bii i n complement fa de 2 avem un total


de 2n1 numere ce pot fi reprezentate. Primele 2n1 numere sunt cele pozitive, inclusiv 0.
Numrul 2n1 este considerat eroare deoarece nu se poate face deosebirea ntre acesta
i inversul lui. n fine, celelalte numere reprezint numerele negative, inversele numerelor
pozitive, aranjate simetric fa de nefolositorul 2n1.
Observaie

Exemplu S considerm cazul des ntlnit de reprezentare pe 8 bii (8bii = un byte).

0
00000000
+1
00000001
+2
00000010
......
........
+126
01111110
+127
01111111
- 128
10000000
127
10000001
126
10000010
..............
2
11111110
1
11111111

(Observaie: nu este folosit ntotdeauna)

5. Adunarea n complement fa de 2
Comprim att adunarea ct i scderea numerelor binare. Scderea unui numr binar este
privit ca o adunare cu complementul acestuia. Vom prezenta ntr-un exemplu toate cazurile
posibile de adunare a dou numere n complement fa de 2:
Exemplu

7 = 00111
12 = 01100
5 = 00101

7 = 11001
12 = 10100
5 = 11011

00111 +
00101
01100

7+
5
12

00111 +
01100
10011

00111 +
11011
100010

7+
5
2

00111 +
10100
11011

11001 +
11011
110100

7 +
5
12

11001 +
10100
101101

7+
12
19
depire!
7+
12
5
7 +
12
19 depire!

La adunarea n complement fa de 2 nu se ine cont de transportul ce poate apare ctre


rangul 5 (la fel cum am neglijat bitul ce a aprut cnd s-a complementat numrul 0).
Depirea poate apare doar cnd se adun dou numere de acelai semn i semnul
rezultatului este diferit.

Seminar Circuite Integrate Digitale

Zoltan Hascsi

6. Reprezentarea numerelor n virgul mobil


Virgula nu este alta dect punctul zecimal (floating-point este punctul zecimal mobil sau
virgula mobil). n virgul mobil numerele se reprezint prin mantis (M) i exponent (E). Mantisa
este un numr subunitar avnd prima cifr de dup punctul zecimal diferit de 0. Exponentul este
puterea ntreag a lui 2 (care poate fi i negativ) care nmulit cu mantisa dau numrul iniial:

N = M 2E

Att mantisa ct i exponentul sunt reprezentate sub forma binar n complement fa de 2.


De regul standardele de reprezentare n virgul mobil presupun un numr limit de bii att
pentru mantis ct i pentru exponent.

Noiuni noi:

bit
byte
MSB
LSB
complement fa de 1
complement fa de 2
floating-point

S-ar putea să vă placă și