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

Zoltan Hascsi

N=

i ,bi 0

2i

sau

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

iar pentru trecerea din hexazecimal n zecimal:

N=

i ,hi 0

hi 16i

sau

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

Exemplu

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 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).

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

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

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

3.3 nmulirea cu 2

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 23 18 414

b0 b1 b2 b3 b4

=0 =1 =0 =0 =1

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' este chiar complementul fa de 1 al lui A i se obine inversnd fiecare cifr a lui A.)

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

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 00111 + 00101 01100 00111 + 11011 100010 11001 + 11011 110100 7 = 11001 12 = 10100 5 = 11011 7+ 5 12 7+ 5 2 7 + 5 12 00111 + 01100 10011 00111 + 10100 11011 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: 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.

N = M 2E

Noiuni noi:

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

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