Sunteți pe pagina 1din 11

CURS 2 – Operaţii în aritmetică binară

OPERAŢII ÎN ARITMETICĂ BINARĂ


Bine aţi venit în lumea circuitelor digitale. Poate sunteţi unul dintre cei ce studiaţi
informatica şi ştiţi absolut tot despre programe şi programare, dar încercaţi încă să vă
imaginaţi cum pot funcţiona toate echipamentele acelea ciudate. Sau poate studiaţi electronica
şi ştiţi deja câte ceva despre circuitele electronice analogice, dar n-aţi putea recunoaşte un bit
nici dacă v-ar sări în faţă. Nu-i nimic. Pornind de la un nivel aproape elementar, acest curs vă
va arăta cum se realizează circuitele şi blocurile digitale.
Cursul vă va prezenta principiile de bază care vă sunt necesare şi cuprinde numeroase
exemple. Pe lângă principii, ori de câte ori va fi posibil, se va face legătura cu lumea reală a
circuitelor digitale, prezentând aplicarea lor în practică.
Circuitele digitale mai sunt denumite şi circuite logice. Scopul declarat al circuitelor
este de a alcătui aparate. De aceea, cursul nu se va limita la relaţii şi teoreme logice.
Cursul îşi propune să trateze despre principii şi despre implementarea lor. Majoritatea
principiilor expuse în curs îşi vor păstra valabilitatea încă mulţi ani; unele vor avea aplicaţii
care la ora actuală nici nu au fost descoperite. În ceea ce priveşte realizarea practică, s-ar
putea ca, atunci când veţi începe să lucraţi în domeniu, ea să fie puţin diferită de cele expuse
în paginile de faţă şi, cu siguranţă, se va modifica permanent de-a lungul întregii
dumneavoastră cariere. Prin urmare, este bine să consideraţi materialul aplicativ din cuprinsul
cursului drept o modalitate de aprofundare a principiilor şi de învăţare a metodelor de lucru cu
ajutorul exemplelor.
Cursul îşi propune să vă prezinte nişte principii de bază în suficientă măsură pentru a
putea înţelege ce se întâmplă atunci când desfăşuraţi o anumită activitate folosind tehnica de
calcul. Aceleaşi principii vă vor arăta unde este eroarea atunci când nu totul merge cum
trebuie.

2.1 REPREZENTAREA NUMERELOR ÎN DIFERITE BAZE DE NUMERAŢIE (2, 8 ,16)

Aparatele digitale sunt construite din circuite care lucrează cu cifre binare 0 şi 1 cu
toate că foarte puţine dintre problemele din viaţa de zi cu zi se bazează pe numerele binare sau
pe orice fel de numere, în general. De aceea, inginerul trebuie să stabilească un fel de
corespondenţă între numerele digitale, care pot fi prelucrate de circuitele digitale, şi numerele,
evenimentele şi condiţiile din viaţa reală. Scopul capitolului de faţă este de a vă arată în ce
mod mărimile numerice familiare pot fi reprezentate şi prelucrate într-un sistem digital,
precum şi modul în care pot fi reprezentate şi datele, evenimentele şi condiţiile numerice.

2.1.1 Sisteme de numeraţie zecimal

Sistemul tradiţional de numeraţie studiat în şcoală şi de uz curent în contabilitate este


numit sistem de numeraţie zecimal. Într-un astfel de sistem, un număr se reprezintă printr-un
şir de cifre în care fiecare dintre poziţiile cifrelor are o anumită pondere. Valoare unui număr
este suma ponderată a cifrelor sale; de exemplu:

1234 = 1 ⋅1000 + 2 ⋅100 + 3 ⋅10 + 4 ⋅1

Ponderea fiecărei poziţii este egală cu 10 la puterea dată de numărul de ordine al


poziţiei respectiv. Virgula zecimală face posibilă utilizarea unor puteri ale lui 10 atât pozitive,
cât şi negative:

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-1


CURS 2 – Operaţii în aritmetică binară

5678,91 = 5 ⋅1000 + 6 ⋅100 + 7 ⋅10 + 8 ⋅1 + 9 ⋅0.1 + 1 ⋅0.01

În general, un număr D, de forma d1 d0 d-1 d-2, are valoarea:

D = d1 ⋅101 + d0 ⋅100 + d-1 ⋅10-1 + d-2 ⋅10-2 (2.1)

În această expresie, 10 este baza sistemului de numeraţie. În general, baza unui sistem
de numeraţie zecimal poate fi orice întreg r ≥ 2, iar ponderea cifrei din poziţia i este ri. Într-un
astfel de sistem, forma generală a unui număr este:

dp-1 dp-2 … d-1 d-0 , d-1 d-2 … d-n (2.2)

cu p cifre în stânga virgulei şi n cifre în dreapta acesteia.


Valoarea unui număr este egală cu suma produselor a doi factori – cifra şi puterea
corespunzătoare a bazei:

p −1
D= ∑d
i=− n
i ⋅ ri (2.3)

Dacă nu luăm în consideraţie eventualele zerouri ce pot apare înaintea unui număr sau
la sfârşitul lui, reprezentarea unui număr într-un sistem de numeraţie este unică. De exemplu:

0234,56700 este egal cu 234,567

Cifra din stânga este cifra de cel mai mare ordin sau cifra cea mai semnificativă;
cifra cea mai din dreapta este cifra de cel mai mic ordin sau cifra cea mai puţin
semnificativă.

2.1.2 Sisteme de numeraţie binare

În circuitele digitale, semnalele pot avea, în mod normal, una din singurele două stări
posibile: de jos sau de sus, cu sarcină sau fără sarcină, oprit sau pornit. Astfel de semnale sunt
interpretate ca reprezentând cifre binare (sau biţi), ale căror valori posibile sunt 0 sau 1.
Aceasta este cauza pentru care s-a ales baza de numeraţie 2 (sau binară) pentru
reprezentarea numerelor în sistemele digitale. Forma generală a unui număr binar este:

bp-1 bp-2 … b-1 b0 , b-1 b-2 … b-n (2.4)

iar valoarea lui este:

p −1
B= ∑b
i=− n
i ⋅ 2i (2.5)

În cazul numerelor zecimale formate din parte întreagă şi parte fracţionară


transformarea se face convertind separat partea întreagă şi partea fracţionară; apoi se
concatenează rezultatele.

Conversia părţii întregi a numărului zecimal se face cu algoritmul lui Euclid. Se


împarte numărul zecimal la bază obţinând un cât şi un rest. Câtul obţinut se împarte din nou la
bază şi aşa mai departe, până când câtul devine zero. Resturile succesive luate în ordine

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-2


CURS 2 – Operaţii în aritmetică binară

inversă a apariţiei reprezintă coeficienţii numărului convertit (primul rest obţinut este cifra cea
mai puţin semnificativă, iar ultimul, cea mai semnificativă).

Exemplul 1. Convertirea numărului 29,85 din baza 10 în baza 2:

CÂT REST
29:2 = 14 1
14:2 = 7 0
7:2 = 3 1
3:2 = 1 1

Rezultatul va fi: 2910 =111012

Conversia părţii zecimale se face după cum urmează: se înmulţeşte partea zecimală cu
baza, obţinând un număr ce are parte întreagă şi parte zecimală. Partea zecimală se înmulţeşte
din nou cu baza şi aşa mai departe până când rezultatul înmulţirii este zero sau până când se
obţin destule cifre ale numărului convertit. Părţile întregi, luate în ordinea apariţiei, reprezintă
coeficienţii (cifrele) numărului zecimal convertit.

În cazul exemplului nostru rezultatul este:

PARTE PARTE
ÎNTREAGĂ ZECIMALĂ
0,85·2= 1 + 0,7
0,7 ·2= 1 + 0,4
0,4 ·2= 0 + 0,8
0,8 ·2= 1 + 0,6
0,6 ·2= 1 + 0,2
0,2 ·2= 0 + 0,4

Rezultatul va fi: 0,8510 =0,1101102.

Rezultatul final al conversiei este: 29,8510 = 11101,1101102

Conversia numărului din baza 2 în baza 10 se face astfel:

11101,110112 = 1⋅24 + 1⋅23 +1⋅22 + 0⋅21 +1⋅20 + 1⋅2-1 + 1⋅2-2 + 0⋅2-3 + 1⋅2-4 +1⋅2-5 =
= 16 + 8 + 4 + 0 + 1 + 0.5 + 0.25 + 0 + 0.0625 + 0.03125
= 29, 8437510

Bitul cel mai din stânga al unui număr binar este numit bitul de cel mai mare ordin
sau bitul cel mai semnificativ (MSB – Most Significant Bit); bitul cel mai din dreapta este
bitul de cel mai mic ordin sau bitul cel mai puţin semnificativ (LSB – Least Significant
Bit).

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-3


CURS 2 – Operaţii în aritmetică binară

2.1.3 Sisteme de numeraţie octale şi hexazecimale

Baza de numeraţie 10 prezintă importanţă pentru că este cea de uz curent în activitatea


cotidiană, iar importanţa bazei 2 se datorează faptului că numerele binare pot fi prelucrate
direct de circuitele digitale. Numerele din alte baze pot fi rareori prelucrate direct, însă au o
anumită importanţă în scop documentar şi în diverse alte scopuri. În particular, bazele 8 şi 16
constituie sisteme convenabile de reprezentare rapidă a numerelor de mai mulţi biţi într-un
sistem digital.
Sistemul de numeraţie octal are baza 8, iar sistemul de numeraţie hexazecimal are
baza 16. Tabelul 2.1 prezintă numerele întregi binare cuprinse între 0000 şi 1111 şi
echivalentele lor în octal, zecimal şi hexazecimal. Sistemul octal utilizează 8 cifre, adică 0 …
7 din sistemul zecimal. Sistemul hexazecimal necesită 16 cifre, deci cifrelor zecimale 0 … 9
li se adaugă literele A … F.

Tabelul 2.1 Reprezentarea numerelor în diferite baze de numeraţie

BAZA
10 2 8 16
0 0000 000 0
1 0001 001 1
2 0010 010 2
3 0011 011 3
4 0100 100 4
5 0101 101 5
6 0110 110 6
7 0111 111 7
8 1000 - 8
9 1001 - 9
10 1010 - A
11 1011 - B
12 1100 - C
13 1101 - D
14 1110 - E
15 1111 - F

Sistemele de numeraţie octal şi hexazecimal sunt adecvate reprezentării numerelor de


mai mulţi biţi deoarece bazele lor sunt puteri ale lui 2. Întrucât cu un şir de 3 biţi se pot realiza
8 combinaţii diferite, înseamnă că fiecare şir de 3 biţi are o reprezentare unică printr-o cifră
octală, aşa cum arată coloana a 3 din tabelul 2.1. Similar, un şir de 4 biţi poate fi reprezentat
printr-o cifră hexazecimală, conform coloanei a 4 din tabel.
Prin urmare numerele binare pot fi convertite foarte uşor în numere octale. Pornind de
la dreapta către stânga, se împart biţii în grupe de câte 3 şi fiecare grupă se înlocuieşte cu cifra
octală corespunzătoare.

Exemplul 2. Să se convertească în octal numerele din baza 2:

1001110111102 = 100 111 011 1102 = 47368


11011101101010112 = 001 101 110 110 101 0112 =1566538

Metoda de conversie binar – hexazecimal este similară, numai că, în acest caz, grupele
formate sunt de câte 4 biţi.

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-4


CURS 2 – Operaţii în aritmetică binară

Exemplul 3. Să se convertească în baza 16, numerele din baza 2:

1001110111102 = 1001 1101 11102 = 9DE16


1111011101101010112 = 0011 1101 1101 1010 10112 =3DDAB16

În exemplele de mai sus s-au adăugat în stânga numerelor atâtea zerouri câte au fost
necesare pentru ca numărul total de biţi să fie multiplu de 3 sau de 4, după caz.
Dacă un număr are cifre semnificative la dreapta virgulei, le putem converti în octal
sau în hexazecimal aplicând acelaşi procedeu de la virgulă către dreapta. Atât în stânga, cât şi
în dreapta unui număr putem adăuga zerouri pentru a obţine un număr de biţi multiplu de 3
sau de 4, ca în exemplul următor.

Exemplul 4. Să se convertească în baza 8 şi 16, numerele din baza 2:

101,110010111001112 = 101,110 010 111 001 1102 = 5,627168


= 0101,1100 1011 1001 11002 = 5,CB9C16

Conversia în sens invers, din octal sau hexazecimal în binar, se face foarte uşor.
Trebuie doar să înlocuim fiecare cifră din octal sau hexazecimal cu şirul corespunzător de 3
sau 4 biţi.

Exemplul 5.
12348 = 001 010 011 1002
2147,358 = 010 001 100 111,011 1012
BCAE16 = 1011 1100 1010 11102
8F,57D16 = 1000 1111, 0101 0111 11012

Sistemul de numeraţie octal a fost destul de mult utilizat cu 25 de ani în urmă datorită
unor minicalculatoare care aveau lămpile şi comutatoarele de pe panoul frontal grupate câte 3.
Astăzi, însă sistemul de numeraţie octal nu mai este utilizat pe scară largă din cauza
preponderenţei echipamentelor care lucrează cu octeţi (byte), adică grupe de câte 8 biţi. Este
dificil de calculat în octal valori de octeţi separaţi pornind de la valori exprimate prin mai
mulţi octeţi.

Exemplul 6. Să se reprezinte în binar numărul octal:

234567103218 = 010 011 100 101 110 111 001 000 011 010 0012

În sistemul hexazecimal, două cifre reprezintă un octet, iar 2n cifre – un cuvânt de n


octeţi; fiecare pereche de cifre constituie exact un octet.

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-5


CURS 2 – Operaţii în aritmetică binară

Exemplul 7. Să se specifice numărul de octeţi ai numărului hexazecimal


6789ACBD16:

6789ACBD16 cuprinde 4 octeţi 6716 , 8916 AC16 şi BD16

Numerele hexazecimale sunt utilizate frecvent pentru reprezentarea spaţiului de adrese


din memoria unui calculator.

2.1.4 Conversii generale între sistemele de numeraţie binare, octale şi hexazecimale

În general, conversia între două baze de numeraţie nu se poate efectua doar printr-o
simplă substituţie; sunt necesare unele operaţii aritmetice. În continuare vom arăta cum se
converteşte un număr din orice bază în baza 10 şi invers, folosind pentru aceasta calcule
aritmetice în baza 10.
Din relaţia (2.3) valoarea numărului poate fi calculată prin conversia fiecărei cifre a
numărului în echivalentul ei în baza 10, urmată de aplicarea formulei, în care calculele se
efectuează tot în baza 10.

Exemplul 8. Să se convertească următoarele numere în baza 10:

2DC516 = 2 ⋅163 + 13 ⋅162 +12 ⋅161 + 5 ⋅160


= 2 ⋅ 4096 + 13 ⋅256 +12 ⋅16 + 5 ⋅1 = 1171710
F2B416 = 15 ⋅163 + 2 ⋅162 +11 ⋅161 + 4 ⋅160
= 15 ⋅ 4096 + 2 ⋅256 +11 ⋅16 + 4 ⋅1 = 6213210
347,68 = 3 ⋅82 + 4 ⋅81 + 7 ⋅80 + 6 ⋅8-1 = 2 ⋅ 64 + 4 ⋅8 +7 ⋅1 + 6 ⋅0.125 = 167,7510
135,34 = 1 ⋅42 + 3 ⋅41 + 5 ⋅40 + 3 ⋅4-1 = 1 ⋅ 16 + 3 ⋅4 +5 ⋅1 + 3 ⋅0.25 = 33,7510

O formulă pentru conversia directă a numerelor întregi din baza r în baza 10 se poate
obţine scriind formula (1.3) astfel:

D = ((...((d p −1 ) ⋅ r + d p − 2 ) ⋅ r + ...) ⋅ r + d 1 ) ⋅ r + d 0 (2.6)

Pornim deci de la suma 0; începând cu cifra cea mai din stânga, înmulţim suma cu r şi
adunăm la rezultat cifra următoare; aplicăm procedeul până când am luat în calcul toate
cifrele.

Exemplul 9. Să se exprime numărul următor din baza 16 în baza 10, folosind formula
(1.6):

F2B416 = (((15)⋅16 + 2)⋅16 +11)⋅16+ 4 = 6213210

Formula (2.6) se aplică în algoritmii iterativi de conversie din programare. Din ea


derivă, de asemenea, o metodă foarte convenabilă de conversie a unui număr zecimal D într-o
bază r. Să vedem ce se întâmplă dacă împărţim la r formula precedentă. Întrucât acea parte a
formulei care conţine paranteze se împarte exact la r, câtul va fi:

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-6


CURS 2 – Operaţii în aritmetică binară

D = (...((d p −1 ) ⋅ r + d p − 2 ) ⋅ r + ...) ⋅ r + d 1 (2.7)

iar restul va fi egal cu d0. Prin urmare, d0 este restul împărţirii lui D la r. Se constată apoi că
forma câtului Q este aceeaşi ca a formulei iniţiale. Prin urmare, prin împărţiri succesive la r se
obţin, în ordine, cifrele numărului D, de la dreapta spre stânga, până la ultima cifră.

Exemplul 10. Să se transforme numărul 29,85 din baza 10 în baza 16 şi baza 8:

CÂT REST
29:16= 1 13
1:16= 0 1

Folosind tabelul de corespondenţă 1.1 conform căruia 1310=D16, rezultă că


2910=1D16. De reţinut ca notaţiile 1D16, 1DH, #1D sunt echivalente.
Pentru conversia părţii zecimale, procedeul este asemănător cu cel descris anterior
şi utilizând tabelul de corespondenţe, se obţine:

PARTE
PARTE ZECIMALĂ
ÎNTREAGĂ
0,85·16= (13)10=(D)16 + 0,6
0,6 ·16= 9 + 0,6
0,6 ·16= 9 + 0,6

Deci: 0,8510=0,D9916
Rezultatul final al conversiei este: 29,8510= 1D,D9916.

CÂT REST
29:8 = 3 5
3:8 = 0 3

Rezultă că 2910=358.
Pentru conversia părţii zecimale, procedeul este asemănător cu cel descris anterior,
se obţine:

PARTE
PARTE ZECIMALĂ
ÎNTREAGĂ
0,85·8 = 6 + 0,8
0,8 ·8 = 6 + 0,4
0,4 ·8 = 3 + 0,2

Deci: 0,8510=0,6638
Rezultatul final al conversiei este: 29,8510= 35,6638.

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-7


CURS 2 – Operaţii în aritmetică binară

2.2 OPERAŢII CU NUMERE NEZECIMALE (ADUNARE, SCĂDERE, ÎNMULŢIRE,


ÎMPĂRŢIRE)

2.2.1 Adunarea numerelor nezecimale

Adunarea şi scăderea de mână a numerelor nezecimale se fac în acelaşi mod în care se


învaţă aceste operaţii la şcoală, pentru numerele zecimale; singura deosebire este faptul că
tabla adunării şi scăderii este diferită. Deoarece numerele sunt în binar, adunarea se face
modulo 2, conform tabelului 2.2:

Tabelul 2.2 Adunarea modulo 2

a b s cout
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

unde s este suma modulo 2 iar cout este transportul.

Exemplul 11. Să se efectueze următoarele operaţii de adunare în binar:

10 + 1 0 1 0 +
8 1 0 0 0
18 1 0 0 1 0

Probă: 100102 = 1 ⋅24 + 0⋅23 + 0 ⋅22 + 1 ⋅21 + 0 ⋅20 = 16 + 2 = 1810

180 + 1 0 1 1 0 1 0 0 +
131 1 0 0 0 0 0 1 1
311 1 0 0 1 1 0 1 1 1

Probă: 1001101112 = 1⋅28 + 0 ⋅27 + 0 ⋅26 + 1 ⋅25 + 1 ⋅24 + 0⋅23 + 1 ⋅22 + 1 ⋅21 + 1 ⋅20
= 256 + 32 + 16 + 4 + 2 + 1 = 31110

2.2.2 Reprezentarea numerelor negative

Până acum am lucrat numai cu numere pozitive, dar şi numerele negative pot fi
reprezentate în mai multe moduri. În activitatea cotidiană folosim sistemul de reprezentare
prin modul şi semn, prezentat în continuare. Cu toate acestea, în majoritatea calculatoarelor se
utilizează unul dintre sistemele de reprezentare prin complement a unui număr, aşa cum se va
arăta mai târziu.

2.2.2.1 Reprezentarea prin modul şi semn

În sistemul de reprezentare prin modul şi semn, un număr apare sub forma un


valori precedate de un semn care arată dacă acea valoare este pozitivă sau negativă. Prin
urmare,ştim cum să interpretăm numerele zecimale +85, -67, +234 şi -24 şi mai ştim că dacă
un număr nu este precedat de nici un semn, este un număr pozitiv.

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-8


CURS 2 – Operaţii în aritmetică binară

Sistemul de reprezentare prin modul şi semn se aplică numerelor binare utilizând un


bit excedentar care reprezintă semnul (bitul de semn). Bitul cel mai din stânga (din poziţia
MSB) dintr-un şir de biţi este considerat bit de semn (0 – plus, 1 - minus), iar biţii următori
reprezintă modulul.

Exemplul 12. Să se reprezinte semnul şi modulul următoarelor numere şi


echivalentul lor zecimal:

0101 10112 = +9110 1101 10112 = -9110


0 1110 10102 = +23410 1 1110 10102 = -23410

Să presupunem că vrem să realizăm un circuit logic digital care să efectueze adunarea


unor numere reprezentate prin modul şi semn. Circuitul trebuie să examineze semnele
termenilor pentru a putea decide cum să prelucreze modulele. Dacă semnele sunt identice,
modulele trebuie adunate, iar rezultatul primeşte acelaşi semn. Dacă semnele sunt diferite,
modulele trebuie comparate, cel mai mic se scade din cel mai mare, iar rezultatul primeşte
semnul termenului cu modulul mai mare. Toate acestea se traduc prin complexitate avansată a
circuitului logic. Singurul avantaj al sistemului de reprezentare prin modul şi semn este acela
că, odată ce am construit un circuit de adunare, este cât se poate de simplu să construim şi
unul de scădere; este nevoie doar de schimbarea semnului scăzătorului şi de adunarea lui la
descăzut folosind circuitul de adunare.

2.2.2.2 Reprezentarea prin complement faţă de 2

În sistemul binar, MSB al unui număr serveşte ca bit de semn; un număr este negativ
dacă şi numai dacă are MSB egal cu 1. Echivalentul zecimal al complementului faţă de 2 al
unui număr binar se calculează la fel ca pentru numerele care nu sunt precedate de semn, cu
excepţia faptului că ponderea MSB este de -2n+1. Domeniul căruia îi aparţin reprezentările
numerelor este cuprins între –(2n-1) şi +(2n-1-1).
Complementul faţă de 2 înseamnă complementul faţă de 1 la care se mai adună 1.
Complementul faţă de 1 presupune ca 0 trece în 1 şi 1 trece în 0.

Exemplul 13. Să se reprezinte complementul faţă de 2 al numerelor: 1610, 16910, -


8910, -12710.

1610 = 0 0 0 1 0 0 0 02
Complement faţă de 2
Compl. faţă de 1 1 1 1 0 1 1 1 1 +
1
1 1 1 1 0 0 0 0

1111 00002 = -1610

16910 = 1 0 1 0 1 0 0 12
Complement faţă de 2
Compl. faţă de 1 0 1 0 1 0 1 1 0 +
1
0 1 0 1 0 1 1 1

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-9


CURS 2 – Operaţii în aritmetică binară

0101 01112 = -16910

-8910 = 1 0 1 0 0 1 1 12
Complement faţă de 2
Compl. faţă de 1 0 1 0 1 1 0 0 0 +
1
0 1 0 1 1 0 0 1

0101 10012 = -8910

-12710 = 1 0 0 0 0 0 0 02
Complement faţă de 2
Compl. faţă de 1 0 1 1 1 1 1 1 1 +
1
1 0 0 0 0 0 0 0

1000 00002 = -12710.

Atunci când apare depăşire, ca în toate operaţiile cu complement faţă de 2, bitul acela
se ignoră, folosindu-se doar cei n biţi de ordin inferior ai rezultatului.

2.2.3 Scăderea numerelor nezecimale

Întrucât adunarea obişnuită este doar o extensie a numărării, numerele reprezentate


prin complementul faţă de 2 se pot aduna conform metodei obişnuite din binar, ignorând
eventualul transport dincolo de MSB. Scăderea este de fapt tot o adunare, dar cu
complementul faţă de 2 al numărului negativ.

Exemplul 14. Să se efectueze următoarele operaţii de scădere:

10 - 10 + (-8) 1 0 0 0
8 (-8) C.2
2 2 C.1 0 1 1 1 +
1
1 0 0 0

1 0 1 0 +
1 0 0 0
se neglijează 1 0 0 1 0

54 - 54 + (-32) 1 0 0 0 0 0
32 (-32) C.2
22 22 C.1 0 1 1 1 1 1 +
1
1 0 0 0 0 0

1 1 0 1 1 0 +
1 0 0 0 0 0
se neglijează 1 0 1 0 1 1 0

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-10


CURS 2 – Operaţii în aritmetică binară

54 - 54 + (-72) 0 1 0 0 1 0 0 0
72 (-72) C.2
-18 -18 C.1 1 0 1 1 0 1 1 1 +
1
1 0 1 1 1 0 0 0

0 0 1 1 0 1 1 0 +
1 0 1 1 1 0 0 0
1 1 1 0 1 1 1 0

2.2.4 Înmulţirea în binar

În clasele primare am învăţat să efectuăm înmulţirea prin adunarea decalată a


produselor dintre deînmulţit şi fiecare dintre cifrele înmulţitorului. Aceeaşi metodă poate fi
utilizată pentru calcularea produsului a două numere binare neprecedate de semn.

Exemplul 15. Să se efectueze următoarele operaţii de înmulţire în binar:

12 × 1 1 0 0 ×
14 1 1 1 0
168 0 0 0 0
1 1 0 0
1 1 0 0
1 1 0 0
1 0 1 0 1 0 0 0

Probă:
101010002 = 1 ⋅27 + 0⋅26 + 1 ⋅25 +0 ⋅24 + 1⋅23 + 0 ⋅22 + 0 ⋅21 + 0 ⋅20 =
= 128 + 32 + 8 = 16810

121 × 1 1 1 1 0 0 1 ×
13 1 1 0 1
1573 1 1 1 1 0 0 1
0 0 0 0 0 0 0
1 1 1 1 0 0 1
1 1 1 1 0 0 1
1 1 0 0 0 1 0 0 1 0 1

110001001012 = 1⋅210+1⋅29+0⋅28+0⋅27 +0⋅26+1⋅25 +0⋅24 +0⋅23 +1⋅22+0⋅21+ 1⋅20 =


=1024+512+ 32 + 4+1 = 157310

Ş.L.drd.ing.PREDUŞCĂ GABRIEL 2-11

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