Dan NICULA
ELECTRONIC
˘
A DIGITAL
˘
A
Carte de ˆınat¸˘atur˘a 2.0
Editura Universit˘at¸ii TRANSILVANIA din Bra¸sov
ISBN 978-606-19-0563-8
2015
Lect¸ia 1
Reprezentarea datelor ˆın sistemele
digitale
1.1 Not¸iuni teoretice
ˆ
In sistemele de calcul, numerele sunt reprezentate ˆın baza de numerat¸ie 2.
ˆ
In aceast˘a baz˘a de numerat¸ie, numerele se
codific˘a cu dou˘a simboluri: 0 ¸si 1.
Reprezentarea numerelor ˆın baza 16 necesit˘a 16 simboluri: 10 cifre (0 9) ¸si 6 litere (A, B, C, D, E, F ).
Baza 10 Baza 16 Baza 2
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
Numerele reprezentate ˆın diferite baze de numerat¸ie ¸si diferite tipuri de coari pot convertite dintr-o form˘a ˆın
alta.
Conversie din baza 2 ˆın baza 16. Se grupeaz˘a ate 4 cifre binare de la dreapta spre stˆanga. Fiecare grup de
4 cifre binare genereaz˘a o cifr˘a ˆın baza 16.
Conversie din baza 2 ˆın baza 10. Num˘arul ˆın baza 10 se determin˘a prin adunarea ponderat˘a a puterilor lui
2. Puterea 2
i
se adun˘a ˆın suma final˘a ponderat˘a cu bitul corespunz˘ator b
i
. Altfel zis, dac˘a b
i
= 1, la sum˘a se
adaug˘a 2
i
, altfel nu.
Matematic, formula este:
6 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
b
N1
b
N2
...b
1
b
0
=
N1
i=0
(b
i
· 2
i
)
Exemplu: 1011001|
2
= 1 · 2
6
+ 0 · 2
5
+ 1 · 2
4
+ 1 · 2
3
+ 0 · 2
2
+ 0 · 2
1
+ 1 · 2
0
= 64 + 0 + 16 + 8 + 0 + 0 + 1 = 89|
10
Metoda adun˘arii ponderilor presupune ˆınsumarea puterilor lui 2 ale aror indec¸si apar ˆın reprezentarea binar˘a.
Exemplu: 1011001|
2
= 2
6
+ 2
4
+ 2
3
+ 2
0
= 64 + 16 + 8 + 1 = 89|
10
O alternativ˘a mai rapid˘a este de a se converti num˘arul din baza 2 ˆın baza 16 ¸si apoi din baza 16 ˆın baza 10.
Conversie din baza 10 ˆın baza 2. Metoda sc˘aderii ponderate este o metoa iterativ˘a care presupune listarea
puterilor lui 2 mai mici decˆat num˘arul considerat. Iterat¸iile ˆıncep cu considerarea puterii lui 2 celei mai mari
(mai mic˘a decˆat num˘arul). Se scade num˘arul putere a lui 2 din num˘arul considerat. Cu restul obt¸inut se repet˘a
sc˘aderea urm˘atoarei puteri ale lui 2 (mai mic˘a decˆat cea anterioar˘a). Dac˘a restul este mai mic decˆat puterea
lui 2, se consider˘a ˆın forma binar˘a un 0 (zero). Altfel, se consider˘a un 1 ¸si se obt¸ine un nou rest prin sc˘aderea
puterii lui 2 din valoarea restului. Algoritmul se termin˘a la cea mai mic˘a putere a lui 2 (2
0
= 1).
O alternativ˘a const˘a ˆın ˆımp˘art¸irea succesiv˘a a num˘arului zecimal la 2 ¸si considerarea resturilor (primul rest
obt¸inut reprezint˘a bitul cel mai put¸in semnificativ, din dreapta).
Se poate face o conversie indirect˘a, din baza 10 ˆın baza 16 ¸si apoi din baza 16 ˆın baza 2.
Conversie din baza 10 ˆın baza 16. O metoa const˘a ˆın ˆımp˘art¸irea succesiv˘a a num˘arului zecimal la 16 ¸si
considerarea resturilor (primul rest obt¸inut reprezint˘a cifra cea mai put¸in semnificativ˘a a num˘arului ˆın baza 16,
cifra din dreapta).
Conversie din baza 16 ˆın baza 2. Fiecare cifr˘a hexazecimal˘a genereaz˘a 4 cifre binare.
Conversie din baza 16 ˆın baza 10. Num˘arul ˆın baza 10 se determin˘a prin suma ponderat˘a a puterilor lui 16.
Ponderea termenului 16
i
este cifra corespunz˘atoare h
i
= 1. Matematic, formula este:
h
N1
h
N2
...h
1
h
0
=
N1
i=0
(h
i
· 16
i
)
Stocarea informat¸iilor ˆın sisteme de calcul necesit˘a codificarea acestora cu coduri binare, pe baza simbolurilor 0 ¸si
1.
Numerele pozitive sunt codificate prin reprezentarea acestora ˆın baza 2.
Numerele ˆıntregi pot codificate ˆın mai multe feluri:
- arime ¸si semn,
- complement fat¸˘a de 1,
- complement fat¸˘a de 2.
Cea mai utilizat˘a codificare este codificarea numerelor ˆıntregi ˆın complement fat¸˘a de 2. Aceast˘a co dificare s-a impus
datorit˘a avantajelor acesteia ˆın implementarea sistemelor de calcul digitale.
ˆ
In acest capitol, ˆın lipsa altor ment¸iuni,
numerele ˆıntregi sunt considerate reprezentate ˆın complement fat¸˘a de 2.
ˆ
In sistemele de calcul, numerele sunt reprezentate sub forma unor codific˘ari binare. Operat¸iile aritmetice ˆın baza
2 sunt similare operat¸iilor ˆın baza 10, par mai grele pentru operatorul uman, ˆıns˘a sunt mai sor de implementat ˆın
sisteme de calcul hardware digitale.
Semnul numerelor ˆıntregi (pozitive sau negative) este ¸si el codat binar (0 = num˘ar pozitiv, 1 = num˘ar negativ).
Operat¸iile aritmetice binare implementate hardware trebuie a t¸in˘a cont de semnul op eranzilor ¸si a ˆıl proceseze corect.
Reprezentarea ˆın complement fat¸˘a de 2 a numerelor negative se realizeaz˘a astfel:
Se determin˘a reprezentarea binar˘a a modulului num˘arului considerat (pozitiv).
Se neag˘a bit cu bit reprezentarea binar˘a obt¸inut˘a.
Se adaug˘a 1, cu considerarea transportului. Bitul de semn se va obt¸ine 1.
O alternativ˘a const˘a ˆın aplicarea urm˘atoarei transform˘ari: se consider˘a bit¸ii num˘arului pozitiv de la dreapta la
stˆanga, se copiaz˘a bit¸ii an˘a la primul 1 inclusiv, ulterior fiecare bit se neag˘a.
1.1. Not¸iuni teoretice 7
Algoritmul expus poate folosit ¸si pentru determinarea num˘arului negativ (N) pornind de la reprezentara binar˘a
a num˘arului pozitiv asociat (N).
Determinarea num˘arului pozitiv (N ) pornind de la reprezentara binar˘a a num˘arului negativ asociat (N) se face
cu algoritmul:
Se neag˘a bit cu bit reprezentarea binar˘a a num˘arului negativ (N ).
Se adaug˘a 1, cu considerarea transportului. Bitul de semn se va obt¸ine 0.
Pe un num˘ar fix de bit¸i se pot reprezenta un num˘ar finit de numere.
ˆ
In cazul unor operat¸ii aritmetice, este posibil
ca rezultatul a nu mai poate reprezentat p e num˘arul de bit¸i ai operanzilor.
ˆ
In acest caz, este necesar˘a extinderea
de semn a operanzilor. Cre¸sterea num˘arului de bit¸i pe care este reprezentat un num˘ar codat ˆın complement fat¸˘a de 2
se face prin extinderea bitului de semn, aflat pe pozit¸ia cea mai semnificativ˘a (din stˆanga) pe toate pozit¸iile superioare
ale formatului cu mai mult¸i bit¸i de cod.
Exemple de codare ˆın complement fat¸˘a de 2, cu num˘ar minim de bit¸i, cu 8 bit¸i ¸si cu 16 bit¸i:
10|
10
= 1010|
2
= 01010|
C2
= 0000 1010|
C2
= 0000 0000 0000 1010|
C2
10|
C2
= 0 1010 + 1 = 1 0101 + 1 = 1111 0110|
C2
= 1111 1111 1111 0110|
C2
Adunarea numerelor reprezentate ˆın complement fat¸˘a de 2 poate sor implementat˘a ˆın hardware deoarece semnul
numerelor nu necesit˘a o procesare diferit˘a fat¸˘a de celelalte cifre binare. Adunarea numerelor reprezentate ˆın com-
plement fat¸˘a de 2 (fie pozitive, fie negative) se face similar cu adunarea numerelor ˆın baza 10: de la cea mai put¸in
semnificativ˘a cifr˘a (din dreapta) spre cea mai semnificativ˘a (din stˆanga), cu considerarea transportului spre bitul
superior ˆın caz a suma a 2 bit¸i si transportul de la bitul inferior) este mai mare sau egal˘a cu 2 (baza de numerat¸ie).
Exemple, operat¸ii aritmetice cu numere codificate ˆın complement fat¸˘a de 2 pe 8 bit¸i:
10|
10
= 1010|
2
= 0000 1010|
C2
20|
10
= 10100|
2
= 0001 0100|
C2
30|
10
= 11110|
2
= 0001 1110|
C2
10|
C2
= 0000 1010 + 1 = 1111 0101 + 1 = 1111 0110|
C2
20|
C2
= 0001 0100 + 1 = 1110 1011 + 1 = 1110 1100|
C2
30|
10
= 0001 1110 + 1 = 1110 0001 + 1 = 1110 0010|
C2
10 + 20 = 30
10+ 0000_1010+
20 0001_0100
-- ---------
30 0001_1110
10 + (20) = (10)
10+ 0000_1010+
-20 1110_1100
--- ---------
-10 1111_0110
(10) + 20 = 10
-10+ 1111_0110+
20 0001_0100
--- ---------
10 0000_1010
(10) + (20) = (30)
-10+ 1111_0110+
-20 1110_1100
--- ---------
-30 1110_0010
8 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
Caracterele alfa-numerice sunt codate ˆın codul ASCII (Engl. ”American Standard Code for Information Inter-
change”). Codul ASCII asociaz˘a fiec˘arui caracter un cod binar de 8 bit¸i.
1.2 Pentru cei ce vor doar a promoveze examenul
1. Realizat¸i urm˘atoarele conversii:
2015|
10
=?|
2
2015|
10
=?|
16
0101 1100|
2
=?|
10
0101 1100|
2
=?|
16
do
DA7C|
16
=?|
10
DA7C|
16
=?|
2
2. Reprezentat¸i urm˘atoarele numere ˆıntregi, ˆın complement fat¸˘a de 2, pe un num˘ar minim de bit¸i. Prezentat¸i
codarea acestora pe 8 ¸si 16 bit¸i, ˆın complement fat¸˘a de 2: 66, 73, 51, 84, 200, 200
3. Realizat¸i urm˘atoarele adun˘ari cu numere ˆıntregi exprimate ˆın complement fat¸˘a de 2, pe 8 bit¸i:
70 + 17 88 + (15)
120 + (122) 73 + (73)
(85) + (15) (14) + 14
(68) + 15 (66) + 90
1.3 Pentru cei ce vor a ˆınvet¸e
1. Enumerat¸i primele 20 de numere care sunt puteri ale lui 2.
Solut¸ie
2
0
= 1
2
1
= 2 2
5
= 32 2
9
= 512 2
13
= 8.192 = 8K 2
17
= 131.072 = 128K
2
2
= 4 2
6
= 64 2
10
= 1.024 = 1K 2
14
= 16.384 = 16K 2
18
= 262.144 = 256K
2
3
= 8 2
7
= 128 2
11
= 2.048 = 2K 2
15
= 32.768 = 32K 2
19
= 524.288 = 512K
2
4
= 16 2
8
= 256 2
12
= 4.096 = 4K 2
16
= 65.536 = 64K 2
20
= 1.048.576 = 1M
2. Care este cel mai mare num˘ar binar, exprimat pe 16 bit¸i?
Care este echivalentul au ˆın baza 10? Dar ˆın baza 16?
Solut¸ie
Cel mai mare num˘ar binar, exprimat pe 16 bit¸i este 1111 1111 1111 1111|
2
. Echivalentul au ˆın baza 10 este
2
16
1 = 65.535|
10
, iar ˆın baza 16 este F F F F |
16
.
3. Care este cel mai mare num˘ar pozitiv, exprimat ˆın baza 10 care se poate reprezenta pe 8 bit¸i? Dar pe 4 bytes?
Solut¸ie
Cel mai mare num˘ar pozitiv, exprimat ˆın baza 10, care se poate reprezenta pe 8 bit¸i este 2
8
1 = 255.
4 bytes= 4 × 8 = 32 bit¸i. Deci, cel mai are num˘ar pozitiv, exprimat ˆın baza 10, care poate reprezentat pe 4
bytes este 2
32
1 = 4.294.967.295.
4. Realizat¸i urm˘atoarea conversie ¸si prezentat¸i modul ˆın care at¸i obt¸inut rezultatul: 11010111|
2
=?|
16
Solut¸ie
Se grupeaz˘a cifrele binare ate 4, de la dreapta la stˆanga. Fiec˘arui grup de 4 cifre binare ˆıi va corespunde o cifr˘a
hexazecimal˘a.
11010111|
2
= 1101 0111|
2
= D7|
16
(1101|
2
= D|
16
¸si 0111|
2
= 7|
16
).
1.3. Pentru cei ce vor a ˆınvet¸e 9
5. Valoarea 100|
16
este egal˘a cu valoarea exprimat˘a ˆın baza 10:
a) 100 b) 256 c) 2
10
d) 400
Solut¸ie
100|
16
= 1 · 16
2
+ 0 · 16
1
+ 0 · 16
0
= 256|
10
. aspuns corect: b).
6. Realizat¸i urm˘atoarele conversii:
a) 13|
10
=?|
2
=?|
8
=?|
16
g) 1999|
10
=?|
2
=?|
16
m) 10001000|
2
=?|
10
b) 110 1101|
2
=?|
16
=?|
8
=?|
10
h) 2012|
10
=?|
2
=?|
8
=?|
16
n) DEAD BEEF |
16
=?|
2
=?|
10
c) 11101010101|
2
=?|
10
i) BEEF |
16
=?|
2
=?|
8
=?|
10
o) 369|
10
=?|
2
=?|
8
=?|
16
d) 130|
10
=?|
2
=?|
8
=?|
16
j) 0101 1010 1101|
2
=?|
16
=?|
10
p) 1101 0110|
2
=?|
10
=?|
8
=?|
16
e) 11 1000 1101|
2
=?|
16
=?|
8
=?|
10
k) 201|
10
=?|
2
=?|
8
=?|
16
q) 372|
8
=?|
2
=?|
10
=?|
16
f) 11010011|
2
=?|
10
l) ABCD|
16
=?|
2
=?|
8
=?|
10
r) DAC|
16
=?|
2
=?|
10
=?|
8
Solut¸ie
a) 13|
10
= (8 + 4 + 1)|
10
= (1 · 2
3
+ 1 · 2
2
+ 0 · 2
1
+ 1 · 2
0
)|
10
= 1101|
2
Pentru a converti num˘arul din baza 2 ˆın baza 8 se grupeaz˘a cifrele binare ate 3, din dreapta ˆın stˆanga. Fiec˘arui
grup de 3 cifre binare ˆıi va corespunde o cifr˘a ˆın baza 8.
1101|
2
= 1 101|
2
= 15|
8
13|
10
= D|
16
.
b) 1101101|
2
= 110 1101|
2
= 6D|
16
;
1101101|
2
= 1 101 101|
2
= 155|
8
;
155|
8
= (1 · 8
2
+ 5 · 8
1
+ 5 · 8
0
)|
10
= (64 + 40 + 5)|
10
= 109|
10
c) 111 0101 0101|
2
= (1·2
10
+1·2
9
+1·2
8
+1·2
6
+1·2
4
+1·2
2
+1·2
0
)|
10
= 1024+512+256+64+16+4+1 = 1877|
10
.
d) 130|
10
= (128 + 2)|
10
= (1 · 2
7
+ 1 · 2
1
) = 1000 0010|
2
.
10 000 010|
2
= 202|
8
.
1000 0010|
2
= 82|
16
.
e) 11 1000 1101|
2
= 38D|
16
.
1 110 001 101|
2
= 1615|
8
.
38D|
16
= (3 · 16
2
+ 8 · 16
1
+ 13 · 16
0
) = 768 + 128 + 13 = 909|
10
.
f) 1101 0011|
2
= (1 · 2
7
+ 1 · 2
6
+ 1 · 2
4
+ 1 · 2
1
+ 1 · 2
0
)|
10
= 128 + 64 + 16 + 2 + 1 = 211|
10
.
g) 1999|
10
= (1024 + 512 + 256 + 128 + 64 + 8 + 4 + 2 + 1)|
10
= (1 · 2
10
+ 1 · 2
9
+ 1 · 2
8
+ 1 · 2
7
+ 1 · 2
6
+ 1 · 2
3
+
1 · 2
2
+ 1 · 2
1
+ 1 · 2
0
)|
10
= 111 1100 1111|
2
.
h) 2012|
10
= (1024 + 512 + 256 + 128 + 64 + 16 + 8 + 4)|
10
=
= (1 · 2
10
+ 1 · 2
9
+ 1 · 2
8
+ 1 · 2
7
+ 1 · 2
6
+ 1 · 2
4
+ 1 · 2
3
+ 1 · 2
2
)|
10
= 111 1101 1100)|
2
.
11 111 011 100|
2
= 3734|
8
.
111 1101 1100|
2
= 7DC|
16
.
i) Se reprezint˘a fiecare cifr˘a din reprezentarea ˆın baza 16 pe 4 bit¸i, ˆın baza 2:
BEEF |
16
= 1011 1110 1110 1111|
2
.
1 011 111 011 101 111 = 137357|
8
.
BEEF |
16
= (11 · 16
3
+ 14 · 16
2
+ 14 · 16 + 15 · 16
0
) = 48879|
10
.
j) 0101 1010 1101|
2
= 5AD|
16
.
5AD|
16
= (5 · 16
2
+ 10 · 16
1
+ 13 · 16
0
)|
10
= 1453|
10
.
k) 201|
10
= (128 + 64 + 8 + 1)|
10
= (1 · 2
7
+ 1 · 2
6
+ 1 · 2
3
+ 1 · 2
0
)|
10
= 1100 1001|
2
.
11 001 001|
2
= 311|
8
.
1100 1001|
2
= C9|
16
.
l) ABCD|
16
= 1010 1011 1100 1101|
2
.
1 010 101 111 001 101|
2
= 125715|
8
.
ABCD|
16
= (10 · 16
3
+ 11 · 16
2
+ 12 · 16
1
+ 13 · 16
0
)|
10
= 43981|
10
.
m) 1000 1000|
2
= (1 · 2
7
+ 1 · 2
3
)|
10
= 136|
10
.
o) 369|
10
= (256 + 64 + 32 + 16 + 1)|
10
= (1 · 2
8
+ 1 · 2
6
+ 1 · 2
5
+ 1 · 2
4
+ 1 · 2
0
)|
10
= 1 0111 0001|
2
.
101 110 001|
2
= 561|
8
1 0111 0001|
2
= 171|
16
p) 1101 0110|
2
= D6|
16
= (13 · 16
1
+ 6 · 16
0
)|
10
= 214|
10
11 010 110|
2
= 326|
8
10 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
7. Rezolvat¸i urm˘atoarele operat¸ii, dup˘a conversia tuturor operanzilor ˆın baza rezultatului:
a) 100|
10
+ 100|
2
+ 100|
8
+ 100|
16
=?|
10
b) 100|
10
+ 100|
2
+ 100|
8
+ 100|
16
=?|
16
c) 100|
10
+ 100|
2
+ 100|
8
+ 100|
16
=?|
2
d) 11|
10
+ 11|
8
+ 11|
16
=?|
16
e) 2012|
16
+ ABCD|
16
=?|
16
f) 2012|
16
+ BEEF |
16
=?|
16
g) 2012|
10
+ 2012|
8
+ 2012|
16
=?|
16
Solut¸ie
a) 100|
2
= 1 · 2
2
= 4|
10
;
100|
8
= 1 · 8
2
= 64|
10
;
100|
16
= 1 · 16
2
= 256|
10
.
ˆ
In baza 10, calculul devine: 100 + 4 + 64 + 256 = 424|
10
.
b) 100|
10
= (6 · 16
1
+ 4)|
10
= 64|
16
;
100|
2
= 4|
16
;
100|
8
= 1 000 000|
2
= 0100 0000|
2
= 40|
16
;
ˆ
In baza 16, calculul devine 64|
16
+ 4|
16
+ 40|
16
+ 100|
16
= 1A8|
16
.
c) 100|
10
= (64 + 32 + 4)|
10
= (1 · 2
6
+ 1 · 2
5
+ 1 · 2
2
)|
10
= 0110 0100|
2
;
100|
8
= 0100 0000|
2
;
100|
16
= 1 0000 0000|
2
;
ˆ
In baza 2, calculul devine:
1_0000_0000+
0_0100_0000
0_0110_0100
0_0000_0100
-----------
1_1010_1000
d) 11|
10
= B|
16
11|
8
= 001 001|
2
= 1001|
2
= 9|
16
ˆ
In baza 16, calculul devine: B + 11 + 9 = 25|
16
.
e), f) Numerele se pot aduna direct ˆın baza 16 prin dispunerea lor unul sub altul ¸si adunarea de la dreapta la
stˆanga a ate unei cifre, cu considerarea transportului.
000 <- transport 011 <- transport
2012 + 2012 +
ABCD BEEF
---- ----
CBDF DF01
g) 2012|
10
= (7 · 16
1
+ 13 · 16
0
+ 12)|
10
= 7DC|
16
;
2012|
8
= 010 000 001 010|
2
= 0100 0000 1010|
2
= 40A|
16
;
ˆ
In baza 16, calculul devine:
001 <- transport
2012 +
7DC
40A
----
2BF8
8. Convertit¸i urm˘atoarele numere din baza 2 ˆın baza 10 ¸si prezentat¸i modul ˆın care at¸i obt¸inut rezultatul:
11010111, 1010 1010, 11001001001, 11000011010011111, 111 1101 1100, 0011 1000 0111 0000 0111.
Solut¸ie
O solut¸ie rapid˘a este a se converteasc˘a numerele din baza 2 ˆın baza 16, prin gruparea a ate 4 bit¸i, ¸si apoi din
baza 16 ˆın baza 10.
1.3. Pentru cei ce vor a ˆınvet¸e 11
1101 0111|
2
= D7|
16
= (13 · 16
1
+ 7 · 16
0
)|
10
= 215|
10
1010 1010|
2
= AA|
16
= (10 · 16
1
+ 10 · 16
0
)|
10
= 170|
10
110 0100 1001|
2
= 649|
16
= (6 · 16
2
+ 4 · 16
1
+ 9 · 16
0
)|
10
= 1609|
10
9. Convertit¸i urm˘atoarele numere din baza 10 ˆın baza 2 ¸si prezentat¸i modul ˆın care at¸i obt¸inut rezultatul. Realizat¸i
acelea¸si conversii prin conversia intermediar˘a a numerelor ˆın baza 16.
104, 1024, 1907, 1921, 1989, 2012, 2020, 4095, 4097, 7777, 8192.
Solut¸ie
Conversiile ˆın binar din cadrul acestui exercit¸iu sunt realizate prin descompunerea num˘arului reprezentat ˆın baza
10, ca sume ponderate ale puterilor lui 2.
104|
10
= (64 + 32 + 8)|
10
= (1 · 2
6
+ 1 · 2
5
+ 1 · 2
3
) = 110 1000|
2
1024|
10
= 1 · 2
10
|
10
= 100 0000 0000|
2
1907|
10
= (1024+512+256+64+32+16+2+1)|
10
= (1·2
10
+1·2
9
+1·2
8
+1·2
6
+1·2
5
+1·2
4
+1·2
1
+1·2
0
)|
10
=
111 0111 0011|
2
1989|
10
= (1024+512+256+128+64+4+1)|
10
= (1·2
10
+1·2
9
+1·2
8
+1·2
7
+1·2
6
+1·2
2
+1·2
0
)|
10
= 111 1100 0101|
2
ˆ
In cazul conversiei intermediare ˆın baza 16, se reprezint˘a num˘arul ˆın baza 16, iar apoi se reprezint˘a fiecare cifr˘a
ˆın binar pe 4 bit¸i. Conversia din baza 10 ˆın baza 16 se poate face prin ˆımp˘art¸iri succesive la 16 ¸si considerarea
aturilor intermediare ¸si a restului final.
104|
10
= (6 · 16
1
+ 8 · 16
0
)|
10
= 68|
16
= 110 1000|
2
.
1024 = (4 · 16
2
+ 0 · 16
1
+ 0 · 16
0
)|
10
= 400|
16
= 100 0000 0000|
2
.
1907|
10
= (7 · 16
2
+ 7 · 16
1
+ 3 · 16
0
)|
10
= 773|
16
= 111 0111 0011|
2
.
1989|
16
= (7 · 16
2
+ 12 · 16
1
+ 5 · 16
0
)|
10
= 111 1100 0101|
2
.
10. Determinat¸i reprezentarea num˘arului 2012|
10
ˆın binar pe 16 bit¸i.
Solut¸ie
2012|
10
= (1024+512+256+128+64+16+8+4)|
10
= (1·2
10
+1·2
9
+1·2
8
+1·2
7
+1·2
6
+1·2
4
+1·2
3
+1·2
2
)|
10
=
111 1101 1100|
2
.
2012|
10
= 111 1101 1100|
2
= 0000 0111 1101 1100|
2
.
11. Convertit¸i num˘arul hexazecimal 6ABC ˆın baza 2 ¸si apoi ˆın baza 8. Repetat¸i problema p entru numerele ABCD,
BEBE, 2012, DEAD, BEEF .
Solut¸ie
Fiecare cifr˘a hexazecimal˘a va genera un grup de 4 cifre binare.
6ABC|
16
= 0110 1010 1011 1100|
2
= 0 110 101 010 111 100|
2
= 65274|
8
ABCD|
16
= 1010 1011 1100 1101|
2
= 1 010 101 111 001 101|
2
= 125715|
8
BEBE|
16
= 1011 1110 1011 1110|
2
= 1 011 111 010 111 110|
2
= 137276|
8
12. Convertit¸i num˘arul zecimal 387 ˆın binar, ˆın dou˘a moduri:
a) convertit direct din zecimal ˆın binar,
b) convertit ˆıntˆai din zecimal ˆın hexazecimal ¸si apoi din hexazecimal ˆın binar.
Care metoa este mai rapid˘a? Dar mai sigur˘a? Repetat¸i operat¸ia cu numerele: 57, 101, 202, 400.
Solut¸ie
a) Conversie direct din zecimal ˆın binar:
387|
10
= (256 + 128 + 2 + 1)|
10
= (1 · 2
8
+ 1 · 2
7
+ 1 · 2
1
+ 1 · 2
0
)|
10
= 1 1000 0011|
2
;
b) Conversie din zecimal ˆın hexazecimal ¸si din hexazecimal ˆın binar:
387|
10
= (1 · 16
2
+ 8 · 16
1
+ 3 · 16
0
)|
10
= 183|
16
= 0001 1000 0011|
2
.
Dup˘a realizarea calculelor, se poate concluziona a metoda conversiei prin baza 16 este mai rapid˘a ¸si mai sigur˘a,
ˆıntrucˆat sunt mai put¸ine operat¸ii.
a) 57|
10
= (32 + 16 + 8 + 1)|
10
= (1 · 2
5
+ 1 · 2
4
+ 1 · 2
3
+ 1 · 2
0
) = 11 1001|
2
;
b) 57|
10
= (3 · 16
1
+ 9)|
10
= 39|
16
= 11 1001|
2
.
a) 101|
10
= (64 + 32 + 4 + 1)|
10
= (1 · 2
6
+ 1 · 2
5
+ 1 · 2
2
+ 1 · 2
0
) = 110 0101|
2
;
b) 101|
10
= (6 · 16
1
+ 5 · 16
0
) = 65|
16
= 110 0101|
2
.
13. Convertit¸i urm˘atoarele numere din binar ˆın hexazecimal grupˆand ate 4 bit¸i pentru a forma o cifr˘a ˆın baza 16:
010101010011, 111111010010, 100101101, 11100011100, 1000001, 100, 10111101, 10100111,
11011110101011011011111011101111.
12 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
Solut¸ie
010101010011|
2
= 0101 0101 0011|
2
= 553|
16
111111010010|
2
= 1111 1101 0010|
2
= F D2|
16
100101101|
2
= 1 0010 1101|
2
= 12D|
16
11100011100|
2
= 111 0001 1100|
2
= 71C|
16
1000001|
2
= 100 0001 = 41|
16
100|
2
= 4|
16
10111101|
2
= 1011 1101|
2
= BD|
16
10100111|
2
= 1010 0111|
2
= A7|
16
14. Convertit¸i urm˘atoarele numere din hexazecimal ˆın zecimal: EA2, ABC, 777, BABA, ABC5, ABACE, E, 14, 234,
FF01. Convertit¸i acelea¸si numere ˆın binar prin asocierea a 4 cifre binare fiec˘arei cifre hexazecimale.
Solut¸ie
Conversia numerelor din hexazecimal direct ˆın zecimal:
EA2|
16
= (14 · 16
2
+ 10 · 16
1
+ 2 · 16
0
)|
10
= (3584 + 160 + 2)|
10
= 3746|
10
;
ABC|
16
= (10 · 16
2
+ 11 · 16
1
+ 12 · 16
0
)|
10
= (2560 + 176 + 12)|
10
= 2748|
10
;
777|
16
= (7 · 16
2
+ 7 · 16
1
+ 7 · 16
0
)|
10
= (1792 + 112 + 7)|
10
= 1911|
10
;
BABA|
16
= (11 · 16
3
+ 10 · 16
2
+ 11 · 16
1
+ 10 · 16
0
)|
10
= (45056 + 2560 + 176 + 10)|
10
= 47802|
10
.
Conversia numerelor din hexazecimal ˆın zecimal, cu conversie intermediar˘a ˆın binar prin gruparea a ate 4 bit¸i:
EA2|
16
= 1110 1010 0010|
2
= 3746|
10
;
ABC|
16
= 1010 1011 1100|
2
= 2748|
10
;
777|
16
= 0111 0111 0111|
2
= 1911|
10
;
BABA|
16
= 1011 1010 1011 1010|
2
= 47802|
10
.
15. Scriet¸i urm˘atoarele numere reprezentate pe 8 bit¸i, ca arime ¸si semn, ˆın complement fat¸˘a de 1 ¸si ˆın complement
fat¸˘a de 2: 33, -27, 14, -17, 100, -98, 125, -123.
Determinat¸i numerele negate ˆın acelea¸si tipuri de codific˘ari: -33, 27, -14, 17, -100, 98, -125, 123.
Solut¸ie
33|
10
= 10 0001|
2
. Fiind un num˘ar pozitiv, ˆın toate cele trei reprezenari (MS, C1 ¸si C2) num˘arul are
aceea¸si reprezentare de cifre binare (7 bit¸i arime ¸si un bit de semn): 33|
MS,C1,C2
= 0 0100001;
27|
10
= 1 1011|
2
= 0001 1011|
2
. 27 fiind un num˘ar negativ, cele trei reprezenari (MS, C1 ¸si C2) sunt
diferite, dar au acela¸si bit de semn asociat numerelor negative: 1.
27|
10
= 1 0011011|
MS
, obt¸inut prin negarea bitului de semn a reprezent˘arii num˘arului pozitiv asociat;
27|
10
= 1 1100100|
C1
, obt¸inut prin negarea bit cu bit a reprezent˘arii num˘arului pozitiv asociat;
27|
10
= 1 1100101|
C2
, obt¸inut prin ad˘augarea unei unit˘at¸i la reprezentarea C1 a num˘arului.
14|
10
= 1110|
2
= 0 000 1110|
MS,C1,C2
.
17|
10
= 1 0001|
2
= 0001 0001|
2
.
17|
10
= 1 001 0001|
MS
17|
10
= 1 110 1110|
C1
17|
10
= 1 110 1111|
C2
100|
10
= 110 0100|
2
= 0 110 0100|
MS,C1,C2
.
16. Determinat¸i numerele ˆıntregi reprezentate ˆın complement fat¸˘a de 2 dup˘a cum urmeaz˘a (bitul cel mai semnificativ
este bitul de semn): 0110110, 1101111010101101, 01011010011, 1100000001, 001111110, 110001010.
Solut¸ie
0 11 0111|
C2
= +37|
16
= +54|
10
1 101 1110 1010 1101|
C2
are bitul de semn egal cu 1, deci este negativ.
1 101 1110 1010 1101|
C2
+1 = 0 010 0001 0101 0011|
2
= 2153|
16
= 2·16
3
+1·16
2
+5·16
1
+3·16
0
= 8531
10
.
Deci, num˘arul ˆın baza 10 este 8531|
10
0 10 1101 0011|
C2
= +2D3|
16
= +723|
10
17. Demonstrat¸i urm˘atorul algoritm de aflare a complementului fat¸˘a de 2 al unui num˘ar reprezentat ˆın binar:
”se copiaz˘a bit¸ii de la dreapta la stˆanga an˘a la primul bit egal cu 1, inclusiv, iar ceilalt¸i bit¸i se neag˘a”.
Exemplificat¸i modul de aplicare a algoritmului ˆın comparat¸ie cu algoritmul clasic:
1.3. Pentru cei ce vor a ˆınvet¸e 13
”se neag˘a tot¸i bit¸ii ¸si se adaug˘a 1”.
Exemplificat¸i cu numerele 53 ¸si 116.
Solut¸ie
a) 53|
10
= 0011 0101|
2
53|
10
= 0011 0101 + 1 = 1100 1011|
C2
, se adaug˘a 1 la reprezentarea complementat˘a a num˘arului pozitiv.
53|
10
= 1100 1011|
C2
, din reprezentarea num˘arului pozitiv, de la dreapta la stˆanga, se copiaz˘a primul bit (este
1) ¸si apoi se neag˘a ceilalt¸i.
b) 116|
10
= 0111 0100|
2
.
116|
10
= 0111 0100 + 1 = 1000 1100|
C2
, se adaug˘a 1 la reprezentarea complementat˘a a num˘arului pozitiv.
116|
10
= 1000 1100|
C2
, din reprezentarea num˘arului pozitiv, de la dreapta la stˆanga, se copiaz˘a primii 3 bit¸i
(doi de 0 ¸si un 1) ¸si apoi se neag˘a ceilalt¸i.
18. Precizat¸i mult¸imea numerelor ce pot reprezentate astfel:
a) numere pozitive, pe 7 bit¸i;
b) numere ˆıntregi, codificate ca arime ¸si semn (MS), pe 7 bit¸i;
c) numere ˆıntregi, codificate ˆın complement fat¸˘a de 1 (C1), pe 7 bit¸i;
d) numere ˆıntregi, codificate ˆın complement fat¸˘a de 2 (C2), pe 7 bit¸i;
e) numere pozitive/ˆıntregi codificate MS/C1/C2, pe 8 bit¸i;
f) numere pozitive/ˆıntregi codificate MS/C1/C2, pe 4 bytes.
Determinat¸i domeniile de reprezentare a numerelor codificate ˆın MS/C1/C2 pentru un num˘ar N de bit¸i. Utilizat¸i
formulele determinate pentru 8/16/32/64 bit¸i.
Solut¸ie
a) Pe N bit¸i, pot reprezentate 2
N
numere pozitive, ˆıntre 0 ¸si 2
N
1. Pentru N = 7 bit¸i, pot reprezentate
numerele pozitive ˆıntre 0 ¸si 2
7
1, adic˘a ˆıntre 0 (000 0000) ¸si 127 (111 1111).
b) Numerele ˆıntregi reprezentate ca ”m˘arime ¸si semn” au un bit (cel mai semnificativ) rezervat pentru semn.
amˆan N 1 bit¸i pentru codificarea arimii.
ˆ
Ins˘a, pentru cazul and arimea este zero nu are semnificat¸ie
combinat¸ia ”num˘ar negativ nul”. Domeniul numerelor reprezentabile este ˆıntre (2
N1
1) ¸si (2
N1
1).
Pentru N = 7 bit¸i, domeniul numerelor ce pot reprezentate este ˆıntre (2
(71)
1) ¸si (2
(71)
1), adic˘a ˆıntre
63 ¸si 63. Num˘arul binar 000 0000 reprezint˘a num˘arul 0 (zero). Combinat¸ia binar˘a 100 0000 nu este legal˘a
(poate considerat˘a asociat˘a num˘arului ”negativ” zero).
c) Reprezentarea numerelor pozitive ˆın complement fat¸˘a de 1 este identic˘a cu reprezentarea numerelor pozitive ˆın
domeniul 0 ¸si 2
N1
1. Reprezentarea numerelor negativeˆın complement fat¸˘a de 1 este obt¸inut˘a din reprezentarea
numerelor pozitive aso ciate ¸si negarea bit cu bit. Rezult˘a domeniu ˆıntre (2
N1
1) ¸si 0.
ˆ
In acest mod, num˘arul
zero are asociate dou˘a combinat¸ii (tot¸i bit¸ii 0 sau tot¸i bit¸ii 1). Domeniul de reprezentare este ˆıntre (2
N1
1)
¸si (2
N1
1). Pentru N=7 bit¸i, domeniul de reprezentare al numerelor ˆın complement fat¸˘a de 1 este ˆıntre
(2
71
1) ¸si 2
71
1, adic˘a ˆıntre -63 ¸si 63. Combinat¸iile 000 0000 ¸si 111 1111 sunt asociate num˘arului 0
(zero).
d)
ˆ
In cazul numerelor ˆıntregi reprezentate ˆın complement fat¸˘a de 2, domeniul este ˆıntre 2
N1
¸si 2
N1
1.
Pentru N=7 bit¸i, domeniul de reprezentare este ˆıntre 64 ¸si 63. Num˘arul zero are o singur˘a reprezentare
000 0000. Num˘arul pozitiv maxim este 63, reprezentat ca 011 1111. Num˘arul negativ 63 este reprezentat ca
100 0001. Num˘arul negativ minim este 64, reprezentat ca 100 0000.
19. a se converteasc˘a numerele din zecimal ˆın binar utilizˆand metoda sc˘aderii ponderate. a se verifice rezul-
tatul prin efectuarea conversiilor inverse, din binar ˆın zecimal, utilizˆand metoda adun˘arii ponderate. Numere
considerate: 23, 55, 100, 178.
Solut¸ie
23- 7- 3- 1- 55- 23- 7- 3- 1- 100- 36- 4- 178- 50- 18- 2-
16 4 2 1 32 16 4 2 1 64 32 4 128 32 16 2
== = = = == == = = = === == = === == == =
7 3 1 0 23 7 3 1 0 36 4 0 50 18 2 0
16 8 4 2 1 32 16 8 4 2 1 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1
1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0
14 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
Verificarea rezultatului prin metoda adun˘arii ponderilor presupune ˆınsumarea puterilor lui 2 ale aror indec¸si
apar ˆın reprezentarea binar˘a:
1 0111|
2
= (16 + 4 + 2 + 1)|
10
= 23|
10
11 0111|
2
= (32 + 16 + 4 + 2 + 1)|
10
= 55|
10
110 0100|
2
= (64 + 32 + 4)|
10
= 100|
10
1011 0010|
2
= (128 + 32 + 16 + 2)|
10
= 178|
10
20. Aflat¸i reprezentarea binar˘a a num˘arului 0010100100010111|
BCD
.
Solut¸ie
Se grupeaz˘a num˘arul reprezentat ˆın format BCD ˆın grupuri de ate 4 bit¸i, de la dreapta la stˆanga, obt¸inˆandu-se:
0010 1001 0001 0111. Pentru fiecare grup de 4 bit¸i ce reprezint˘a o cifr˘a ˆın format BCD, se afl˘a corespondentul
ˆın baza 10: 0010 = 2, 1001 = 9, 0001 = 1, 0111 = 7. Rezult˘a a 0010 1001 0001 0111|
BCD
= 2917|
10
. Prin
transformarea num˘arului din baza 10 ˆın baza 2, rezult˘a: 2917|
10
= 1011 0110 0101|
2
.
ˆ
In concluzie, 0010 1001 0001 0111|
BCD
= 1011 0110 0101|
2
.
21. Determinat¸i reprezenarile urm˘atoarelor numere ˆıntregi ˆın formatele pe 16 bit¸i: arime ¸si semn, complement
fat¸˘a de 1 ¸si complement fat¸˘a de 2.
a) -5 b) -10 c) -100 d) -10000 e) -29876.
Solut¸ie
a) 5|
10
= 101|
2
= 0000 0000 0000 0101|
2
Prin schimbarea ˆın 1 a bitului cel mai semnificativ: 5|
10
= 1000 0000 0000 0101|
MS
Prin complementarea bit cu bit a reprezent˘arii binare a num˘arului pozitiv: 5|
10
= 1111 1111 1111 1010|
C1
Prin ad˘augarea unei unit˘at¸i la reprezentarea ˆın complement fat¸˘a de 1: 5|
10
= 1111 1111 1111 1011|
C2
b) 10|
10
= 1010|
2
= 0000 0000 0000 1010|
2
10|
10
= 1000 0000 0000 1010|
MS
= 1111 1111 1111 0101|
C1
= 1111 1111 1111 0110|
C2
c) 100|
10
= 110 0100|
2
= 0000 0000 0110 0100|
2
100|
10
= 1000 0000 0110 0100|
MS
= 1111 1111 1001 1011|
C1
= 1111 1111 1001 1100|
C2
d) 1000|
10
= 11 1110 1000|
2
= 0000 0011 1110 1000|
2
1000|
10
= 1000 0011 1110 1000|
MS
= 1111 1100 0001 0111|
C1
= 1111 1100 0001 1000|
C2
e) 29876|
10
= 111 0100 1011 0100|
2
= 0111 0100 1011 0100|
2
29876|
10
= 1111 0100 1011 0100|
MS
= 1000 1011 0100 1011|
C1
= 1000 1011 0100 1100|
C2
22. Reprezentat¸i numerele 123 ¸si 789 ˆın format BCD ¸si apoi ˆınsumat¸i-le. Repetat¸i operat¸ia cu numerele (777 ¸si 456),
(839 ¸si 352), (784 ¸si 609).
Solut¸ie
Se plaseaz˘a cele dou˘a numere unul sub altul, ca la o adunare ˆın baza 10:
123+ 0001_0010_0011+
789 0111_1000_1001
--- --------------
912 1001_0001_0010
Adunarea cifrelor BCD nu trebuie acut˘a ca a numerelor ˆın binar deoarece, ˆın cazul numerelor BCD, transportul
este generat la valoarea 10. Astfel 0011 + 1001 = 0010, transport = 1, adic˘a 3 + 9 = 2, tr ansport = 1. La fel
0010 + 1000 + 1 = 0001, transport = 1 (2 + 8 + 1 = 1, transport = 1) ¸si 0001 + 0111 + 1 = 1001, transport = 0
(1 + 7 + 1 = 9).
839+ 1000_0011_1001+ 784+ 0111_1000_0100+
352 0011_0101_0010 609 0110_0000_1001
---- ------------------- ---- -------------------
1191 0001_0001_1001_0001 1393 0001_0011_1001_0011
1.3. Pentru cei ce vor a ˆınvet¸e 15
23. Scriet¸i-v˘a numele cu caractere binare ˆın cod ASCII.
Solut¸ie
a presupunem urm˘atorul nume: Ion Stelescu. Fiecare liter˘a poate codat˘a ˆın ASCII ¸si exprimat˘a ˆın hexa-
zecimal, dup˘a cum urmeaz˘a:
I = 49|
16
, o = 6F |
16
, n = 6E|
16
, space = 20|
16
, S = 53|
16
, t = 74|
16
, e = 65|
16
, l = 6C|
16
, e = 65|
16
, s = 73|
16
,
c = 63|
16
, u = 75|
16
.
Convertind codurile din baza 16 ˆın baza 2 rezult˘a scrierea ˆın binar a numelui Ion Stelescu:
49 6F 6E 20 Ion_
53 74 65 6C 65 73 63 75 Stelescu
0100_1001 0110_1111 0110_1110 0010_0000
0101_0011 0111_0100 0110_0101 0110_1100 0110_0101 0111_0011 0110_0011 0111_0101
24. Decodat¸i urm˘atorul text scris ˆın binar cu coduri ASCII: 01000101 01001100 01000101 01000011 01010100
01010010 01001111 01001110 01001001 01000011 01000001 00100000 01000100 01001001 01000111 01001001
01010100 01000001 01001100 01000001.
Solut¸ie
0100_0101 0100_1100 0100_0101 0100_0011 0101_0100 0101_0010 0100_1111
4 5 4 C 4 5 4 3 5 4 5 2 4 7
E L E C T R O
0100_1110 0100_1001 0100_0011 0100_0001 0010_0000
4 E 4 9 4 3 4 1 2 0
N I C A
0100_0100 0100_1001 0100_0111 0100_1001 0101_0100 0100_0001 0100_1100 0100_0001
4 4 4 9 4 7 4 9 5 4 4 1 4 C 4 1
D I G I T A L A
25. Decodat¸i urm˘atorul text scris ˆın hexazecimal cu coduri ASCII: 41 63 65 61 73 74 61 20 63 61 72 74 65 20 61 20
61 70 61 72 75 74 20 69 6E 20 61 6E 75 6C 20 32 30 31 32 2E.
Transcriet¸i mesajul ˆın binar.
Solut¸ie
Textul decodat este (ASCII, binar, caracter):
41 63 65 61 73 74 61 20
01000001 01100011 01100101 01100001 01110011 01110100 01100001 00100000
A c e a s t a
63 61 72 74 65 20 61 20
01100011 01100001 01110010 01110100 01100101 00100000 01100001 00100000
c a r t e a
61 70 61 72 75 74 20 69 6E 20
01100001 01110000 01100001 01110010 01110101 01110100 00100000 01101001 01101110 00100000
a p a r u t i n
61 6E 75 6C 20 32 30 31 32 2E
01100001 01101110 01110101 01101100 00100000 00110010 00110000 00110001 00110010 00101110
a n u l 2 0 1 2 .
26. Cu ce operat¸ie aritmetic˘a se pot determina codurile ASCII ale caracterelor ce reprezina cifre, pe baza cifrei
respective?
16 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
Solut¸ie
ˆ
In codul ASCII, caracterele asociate cifrelor sunt codificate cu primele 4 cifre binare 0011. Ultimele 4 cifre
binare reprezint˘a cifra scris˘a ˆın binar. Astfel, codul ASCII al caracterului ”0” este 0011 0000|
2
= 30|
16
. Se poate
considera a pentru a obt¸ine codul ASCII al unei cifre, trebuie adunat˘a acea cifr˘a la codul ASCII asociat ca-
racterului ”0”. Astfel: ”1”=”0”+1, ”7”=”0”+7, ”9”=”0”+9. Aceast˘a observat¸ie este utilizat˘a pentru conversia
numerelor reprezentate ˆın binar ˆın codul ASCII corespunz˘ator cifrei, ˆın vederea afi¸arii acestuia ˆın sisteme de
afi¸saj.
27. Ce bit trebuie complementat ˆın codul ASCII pentru a converti un ¸sir de litere minuscule ˆın corespondentele lor
majuscule?
Solut¸ie
ˆ
Intre codurile ASCII asociate unei litere majuscule ¸si aceea¸si liter˘a minuscul˘a este o diferent¸˘a de 20|
16
= 32|
10
=
2
5
. Cu alte cuvinte, minusculele ¸si majuscule au acela¸si cod ASCII cu except¸ia bitului 5 care este 0 la litera
majuscul˘a ¸si 1 la litera minuscul˘a. Pentru conversia unei litere din minuscul˘a ˆın majuscul˘a trebuie complementat
bitul 5.
28. Ce valoare ˆın baza 10 reprezint˘a ¸sirul binar 1000 1001 0111 dac˘a valoarea este codificat˘a ˆın:
a) cod BCD c) cod complement fat¸˘a de 2
b) cod complement fat¸˘a de 1 d) num˘ar pozitiv.
Solut¸ie
a) 1000 1001 0111|
BCD
= 897|
10
b) 1000 1001 0111|
C1
= (0111 0110 1000|
2
) = (2
10
+2
9
+2
8
+2
6
+2
5
+2
3
) = (1024+512+256+64+32+8) =
1896|
10
c) 1000 1001 0111|
C2
= (0111 0110 1000|
2
+1) = (0111 0110 1001|
2
) = (1024+512+256+64+32+8+1) =
1897|
10
d) 1000 1001 0111|
2
= 2
11
+ 2
7
+ 2
4
+ 2
2
+ 2
1
+ 2
0
= 2048 + 128 + 16 + 4 + 2 + 1 = 2199|
10
29. Convertit¸i urm˘atoarele numere reprezentate ˆın BCD ˆın baza 10 ¸si prezentat¸i modul ˆın care at¸i obt¸inut rezultatul:
10010111, 10000010, 11001001001, 11000011010011000, 11101011000, 001000110001000101110101.
Convertit¸i ˆın binar numerele prezentate.
Solut¸ie
Pentru a converti un num˘ar reprezentat ˆın format BCD ˆın format zecimal, se grupeaz˘a ate 4 bit¸i, de la dreapta
la stˆanga. Fiecare grup de 4 cifre binare va genera o cifr˘a a num˘arului exprimat ˆın baza 10. Conversia ˆın binar
se va face din reprezentarea ˆın baza 10.
1001 0111|
BCD
= 97|
10
= 110 0001|
2
,
1000 0010|
BCD
= 82|
10
= 101 0010|
2
,
110 0100 1001|
BCD
= 649|
10
= 10 1000 1001|
2
,
1 1000 0110 1001 1000|
BCD
= 18698|
10
= 100 1001 0000 1010|
2
,
111 0101 1000|
BCD
= 758|
10
= 10 1111 0110|
2
,
0010 0011 0001 0001 0111 0101|
BCD
= 23117|
10
= 101 1010 0100 1101|
2
.
30. Un sistem de calcul opereaz˘a cu numere reprezentate pe 48 de bit¸i. ate numere pot reprezentate cu acest
num˘ar de bit¸i, dac˘a se utilizeaz˘a urm˘atoarele coduri?
a) binar b) BCD c) ASCII
Solut¸ie
a) 2
48
= 281.474.976.710.656
b) 10
(48/4)
= 10
12
= 1.000.000.000.000
c) 10
(48/8)
= 10
6
= 1.000.000
31. Determinat¸i num˘arul minim de bit¸i utilizat¸i pentru a codifica fiecare caracter dintr-o tastatur˘a cu urm˘atoarele
numere de taste: 9, 16, 22, 36, 104.
Solut¸ie
Num˘arul de bit¸i necesar se obt¸ine rezolvˆand inecuat¸ia 2
bit¸i
num˘ar taste.
Rezult˘a num˘arul de bit¸i necesar: 4, 4, 5, 6, 7.
1.3. Pentru cei ce vor a ˆınvet¸e 17
32. Dac˘a urm˘atoarele numere de bit¸i sunt utilizate pentru a codifica fiecare caracter dintr-o tastatur˘a, determinat¸i
num˘arul maxim de taste: 4, 5, 6, 7, 8.
Solut¸ie
Num˘arul de taste care se pot codifica se obt¸ine rezolvˆand ecuat¸ia num˘ar taste = 2
bit¸i
. Rezult˘a num˘arul maxim
de taste codificate: 16, 32, 64, 128, 256.
33. Determinat¸i codul pentru comanda unui afi¸saj cu 7 segmente care a prezinte urm˘atoarele caractere: E, b, C, d,
h, A, 7, 9. Pentru a lumina un segment acesta trebuie comandat cu valoarea logic˘a 1.
Solut¸ie
Se consider˘a denumirea segmentelor ca ˆın figura 1.1. Rezult˘a codurile, ˆın ordinea S
0
S
1
S
2
S
3
S
4
S
5
S
6
:
E = 1001111, b = 0011111, C = 1001110, d = 0111101, h = 0010111, A = 1110111, 7 = 1110000, 9 = 1111011.
Figura 1.1 Afi¸saj cu 7 segmente referit la problema 33.
34. Asociat¸i coduri binare celor 52 art¸i de joc (folosit¸i un num˘ar minim de bit¸i). Precizat¸i patternul binar pentru
select¸ia urm˘atoarelor:
a) toate art¸ile de trefl˘a;
b) toate art¸ile de ro¸su;
c) toate art¸ile de 9 (indiferent de culoare);
d) art¸ile de 10, ro¸su;
e) art¸ile de negru mai mari decˆat 7;
f) art¸ile mai mici decˆat 4.
Solut¸ie
art¸ile de joc sunt de 4 feluri: dou˘a de culoare ro¸sie (inim˘a ro¸sie ¸si romb) ¸si dou˘a de culoare neagr˘a (inim˘a
neagr˘a ¸si trefl˘a). Sunt necesari 2 bit¸i pentru a codifica cele 4 tipuri de art¸i. Dac˘a se codific˘a ˆıntr-un anumit
mod, se poate face ca un bit din cei doi a codifice culoarea art¸ii. De exemplu, se codific˘a:
00 = inim˘a ro¸sie, 01 = romb, 10 = inim˘a neagr˘a, 11 = trefl˘a
Din fiecare fel sunt 13 art¸i de joc, cu simbolurile: 2, 3, 4, 5, 6, 7, 8, 9, 10, A, J, Q, K. Pentru codificarea acestora
este nevoie de minim 4 bit¸i (2
4
13).
Se codific˘a: A = 1011, J = 1100, Q = 1101, K = 1110.
ˆ
In total, sunt folosit¸i 6 bit¸i (2
6
= 64 combinat¸ii) pentru a codifica 52 de obiecte. Deci, vor 12 coduri nealocate
(codurile celor 4 culori, terminate cu 0000, 0001, 1111. O parte din acestea pot alocate pentru art¸i speciale
(joker).
ˆ
In cazul codific˘arii propuse, patternul de select¸ie a grupelor precizate este:
a) toate art¸ile de trefl˘a: 11XXXX
b) toate art¸ile de ro¸su: 0XXXXX
c) toate art¸ile de 9 (indiferent de culoare): XX1001
d) art¸ile de 10 ro¸su: 0X1010
e) art¸ile de negru mai mari decˆat 7: 1X1XXX
f) art¸ile mai mici decˆat 4: XX00XX
35. a se propun˘a codificarea disciplinelor din planul de ˆınv˘at¸˘amˆant, cu un num˘ar minim de bit¸i ¸si care a cont¸in˘a
urm˘atoarele informat¸ii:
specializarea;
disciplina;
tipul disciplinei (O = obligatorie sau F = facultativ˘a);
18 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
semestrul ˆın care se desf˘soar˘a (4 ani, ate dou˘a semestre pe an, o disciplin˘a se poate desf˘sura ˆın unul sau
dou˘a semestre).
a se propun˘a codarea corelat˘a atˆat pentru operatorul uman (u¸sor de interpretat de atre oameni) at ¸si pentru
gestionarea de atre calculator (codificare binar˘a).
Propunet¸i un cod unic pe t¸ar˘a care a includ˘a informat¸ii despre:
facultate;
universitate;
ors.
Includet¸i ¸si caracteristici ale disciplinelor:
cont¸inut (DF = disciplin˘a fundamental˘a, DD = disciplin˘a ˆın domeniu, DS = disciplin˘a de specialitate, DC
= disciplin˘a complementar˘a)
opt¸ionalitate (DI = disciplin˘a obligatorie, impus˘a, DO = disciplin˘a opt¸ional˘a, la alegerea student¸ilor).
Calculat¸i num˘arul de bit¸i necesari pentru codificarea unei discipline.
Pe baza codific˘arii binare, propunet¸i patternuri de select¸ie a disciplinelor pe anumite criterii.
- toate disciplinele unei specializ˘ari;
- toate disciplinele fundamentale din anul 2, ale unei specializ˘ari;
- toate disciplinele din semestrul 3 (semestrul 1, anul 2);
- toate disciplinele de specialitate, opt¸ionale, din anul 2, ale unei specializ˘ari.
36. Justificat¸i valoarea de adev˘ar a fiec˘arei afirmat¸ii:
a) Num˘arul binar 1111 0101 reprezint˘a num˘arul -10 exprimat ˆın complement fat¸˘a de 2.
b) 101|
10
+ 100|
16
= 1 0110 0101|
2
c) 101|
10
+ 101|
16
= 1 0110 0110|
2
Solut¸ie
a) 10|
10
= 0000 1010|
2
, rezult˘a 10 = 1111 0101 + 1 = 1111 0110|
C2
, deci afirmat¸ia este fals˘a.
1111 0101|
2
reprezina un num˘ar negativ (deoarece are cel mai semnificativ bit egal cu 1).
0000 1010+1 = 0000 1011 Rezult˘a a num˘arul binar considerat reprezint˘a num˘arul 11|
10
ˆın format complement
fat¸˘a de 2 pe 8 bit¸i.
b) 101|
10
= 64 + 32 + 4 + 1 = 0 · 2
7
+ 1 · 2
6
+ 1 · 2
5
+ 0 · 2
4
+ 0 · 2
3
+ 1 · 2
2
+ 0 · 2
1
+ 1 · 2
0
= 0110 0101|
2
.
100|
16
= 1 0000 0000|2, deci afirmat¸ia este adev˘arat˘a.
0110_0101+
1_0000_0000
-----------
1_0110_0101
d) Se poate observa a fat¸˘a de afirmat¸ia de la punctul b), primul operand este acela¸si, iar cel de al doilea este
mai mare cu 1, decˆat operanzii sumei de mai sus. Astfel, rezultatul acestei sume se poate afla prin adunarea la
rezultatul anterior cu 1. Deci, afirmat¸ia este adev˘arat˘a.
1_0000_0101+
1
-----------
1_0110_0110
37. Reprezentarea ˆın complement fat¸˘a de 2 a operat¸iei 4 + 7 = 3 este:
a) 0000 0100 + 1111 1001 = 0000 0011;
b) 0100 + 0111 = 0011;
c) 11 1100 + 00 0111 = 10 0011;
d) 1111 1100 + 0000 0111 = 0000 0011.
Solut¸ie
4|
10
= 0000 0100|
2
, 4|
10
= 1111 1100|
2
7|
10
= 0000 0111|
2
1.3. Pentru cei ce vor a ˆınvet¸e 19
3|
10
= 0000 0011|
2
aspunsul corect este d).
aspunsul se poate determina ¸si ar˘a a face conversia ˆın reprezentarea binar˘a a operanzilor dac˘a se observ˘a
urm˘atoarele:
- aspunsurile a) ¸si b) sunt gre¸site, deoarece primul operand (4) trebuie a aib˘a cel mai semnificativ bit egal
cu 1, fiind negativ.
- aspunsul c) este gre¸sit, deoarece rezultatul 3 este pozitiv, deci ar trebui a aib˘a bitul de semn egal cu 0.
38. Realizat¸i urm˘atoarele operat¸ii ˆın baza de numerat¸ie precizat˘a:
a) 371|
16
+ 4DAC|
16
=?|
16
b) 1101 0001|
2
+ 1101 0111|
2
=?|
2
Solut¸ie
Operat¸iile se pot realiza prin dispunerea operanzilor unul sub altul ¸si adunarea cifrelor hexazecimale sau binare
una ate una, ˆıncepˆand de la cea mai put¸in semnificativ˘a (din partea dreapt˘a), cu considerarea transportului
(ment¸ionat pe primul and, ang˘a simbolul <=).
1100 <= 110101110 <= transport
371+ 11010001 +
4DAC 11010111
==== ==========
511D 110101000
39. Aflat¸i num˘arul negativ reprezentat pe 8 bit¸i ˆın complement fat¸˘a de 2 asociat num˘arului binar pozitiv 0010 1110.
Prezentat¸i modul ˆın care at¸i obt¸inut rezultatul.
Solut¸ie
Num˘arul negativ asociat se obt¸ine din reprezentarea binar˘a a num˘arului pozitiv prin complementarea tuturor
bit¸ilor ¸si ad˘augarea unei unit˘at¸i:
0010 1110 = 1101 0001, 1101 0001 + 1 = 1101 0010.
40. Adunat¸i ¸si ˆınmult¸it¸i urm˘atoarele numere binare ar˘a a le converti ˆın baza 10: (1101, 101), (1010, 1010), (101,
111).
Solut¸ie
Numerele binare pot ˆınmult¸ite dup˘a acela¸si algoritm ca ¸si numerele zecimale prin plasarea operanzilor unul
sub altul ¸si ˆınmult¸irea fiec˘arei cifre a celui de-al doilea operand cu fiecare cifr˘a a primului operand. Operat¸iile
de ˆınmult¸ire binare au rezultate naive: 0 × 0 = 1 × 0 = 0 × 1 = 0 ¸si 1 × 1 = 1. Ca o consecint¸˘a, ˆınmult¸irea unui
operand cu 1 este egal˘a cu acel operand, iar ˆınmult¸irea unui operand cu 0 este egal˘a cu 0.
ˆ
Insumarea rezultatelor
part¸iale trebuie a t¸in˘a cont de un eventual transport.
1101x 1010x 101x
101 1010 111
==== ===== ===
1101 0000 101
0000 1010 101
1101 0000 101
======= 1010 ======
1000001 ======= 100011
1100100
41. Realizat¸i urm˘atoarele sc˘aderi ale numerelor pozitive precizate prin determinarea num˘arului negativ asociat
sc˘az˘atorului ¸si realizarea unei operat¸ii de adunare, conform formulei A B = A + (B). Extindet¸i bitul
de semn pentru a putea reprezenta numerele negative.
a) 11011 11001 b) 110110 10101 c) 1100 110111 d) 1001010 1001011
Solut¸ie
Extinderea bitului de semn are ca scop obt¸inerea unei forme de reprezentare echivalente pe un num˘ar mai mare
de bit¸i, necesari pentru efectuarea unor operat¸ii aritmetice care genereaz˘a un rezultat ce nu poate reprezentat
pe num˘arul init¸ial de bit¸i. Extinderea bitului de semn const˘a ˆın ad˘augarea unor bit¸i egali ca valoare cu bitul de
semn, ˆın partea stˆang˘a, ca bit¸i mai semnificativi.
20 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
a) Numerele pozitive au 5 bit¸i. Pentru a reprezenta numerele negative asociate este necesar extinderea operanzilor
cu un bit suplimentar 101011 11001 = 0 11011 0 11001.
Operat¸ia binar˘a corespunde operat¸iei cu numere zecimale 27 25 = 27 + (25) = 2.
25 = (0 11001|
C
2
) = 1 00110 + 1 = 1 00111
011011+
100111
======
000010
b) Cel mai mare num˘ar pozitiv are 6 bit¸i. Pentru a reprezenta numerele negative asociate este necesar extinderea
operanzilor la 7 bit¸i: 110110 10101 = 0 110110 0 010101
Operat¸ia binar˘a corespunde operat¸iei cu numere zecimale 54 21 = 54 + (21) = 33.
21 = (0 010101|
C
2
) == 1 101010 + 1 = 1 101011
0110110+
1101011
=======
0100001
c) Cel mai mare num˘ar pozitiv are 6 bit¸i. Pentru a reprezenta numerele negative asociate este necesar extinderea
operanzilor la 7 bit¸i: 1100 110111 = 0 001100 0 110111
Operat¸ia binar˘a corespunde operat¸iei cu numere zecimale 12 55 = 12 + (55) = 43.
43 = (0 110111|
C
2
) = 1 001000 + 1 = 1 001001
0001100+
1001001
=======
1010101
(1 010101|
C
2
) = 0 101011 = 43|
10
d) Operat¸ia binar˘a corespunde operat¸iei cu numere zecimale 74 75 = 74 + (75) = 1.
01001010+
10110101
========
11111111
42. Reprezentat¸i urm˘atoarele operat¸ii cu numere codificate ˆın complement fat¸˘a de 2 pe 16 bit¸i. Verificat¸i rezultatele
prin conversia numerelor ˆın baza 10.
a) (+87) + (+22) c) (-87) + (+22) e) (+8765) + (+502) g) (+8765) + (-502)
b) (+87) + (-22) d) (-87) + (-22) f) (-8765) + (+502) h) (-8765) + (-502)
Solut¸ie
a) 0000 0000 0101 0111|
2
+ 0000 0000 0001 0110|
2
= 0000 0000 0110 1101|
2
= 109|
10
;
b) 0000 0000 0101 0111|
2
+ 1111 1111 1110 1010|
2
= 0000 0000 0100 0001|
2
= 65|
10
;
c) 1111 1111 1010 1001|
2
+ 0000 0000 0001 0110|
2
= 1111 1111 1011 1111|
2
= 65|
10
;
43. Adunat¸i, sc˘adet¸i ¸si ˆınmult¸it¸i urm˘atoarele numere ar˘a a le converti ˆın zecimal.
a) 451|
8
¸si 175|
8
b) 451|
16
¸si 175|
16
c) 2E|
16
¸si ABC|
16
d) 1100|
2
¸si 10 1011|
2
Solut¸ie
a) 451|
8
+ 175|
8
= 646|
8
b) 451|
16
+ 175|
16
= 5C6|
16
451|
8
175|
8
= 254|
8
451|
16
175|
16
= 2DC|
16
451|
8
× 175|
8
= 110405|
8
451|
16
× 175|
16
= 64A05|
16
44. Realizat¸i urm˘atoarele operat¸ii cu numere reprezentate ˆın complement fat¸˘a de 2:
7 + (3) 97 + 28 100 + (7) 38 + (23) 40 + (40) 58 + (42)
7 (3) 97 28 100 (7) 38 (23) 40 (40) 58 (42).
1.4. Pentru cei ce vor a devin˘a profesioni¸sti 21
1.4 Pentru cei ce vor a devin˘a profesioni¸sti
1. ate cifre sunt egale cu 1 ˆın reprezentarea binar˘a a urm˘atoarelor numere zecimale: 4, 16, 33, 63, 126, 257, 1022?
asit¸i o modalitate mai rapid˘a de determinare, ar˘a a face conversia numerelor ˆın baza 2.
Solut¸ie
4 este o putere a num˘arului 2, 4 = 2
2
. Deci, ˆın reprezentarea binar˘a, are un singur 1.
Acela¸si rat¸ionament se face pentru 16 = 2
4
.
33 = 32 + 1 = 1 · 2
5
+ 1 · 2
0
. Deci, are dou˘a cifre egale cu 1 ˆın reprezentarea binar˘a.
Acela¸si rat¸ionament se face pentru 257 = 256 + 1 = 1 · 2
8
+ 1 · 2
0
. Deci, dou˘a cifre egale cu 1.
63 poate scris ca 64 1. 64 = 2
6
, deci are reprezentarea 1000000 (un 1 urmat de 6 cifre 0). Dac˘a se scade
1, rezult˘a un num˘ar binar cu 6 cifre de 1 (0111111).
Acela¸si rat¸ionament se poate face pentru 1022 = 1023 1, 1023 = 2
10
1 are 10 cifre 1, rezult˘a a 1022
are 9 cifre egale cu 1.
2. Un convertor analog-digital (Engl. ”ADC = Analog-Digital Converter”) are o intrare analogic˘a V
in
¸si n ie¸siri
digitale D
n1
...D
0
. Circuitul prezina la ie¸sire tensiunea analogic˘a de la intrare, codificat˘a binar. Un circuit
ADC este caracterizat de arimile: rezolut¸ia de bit (R
bit
), domeniul maxim al tensiunii de intrare (V
max
) ¸si
num˘arul de bit¸i (n). Cele trei arimi sunt ˆın relat¸ia: V
max
= 2
n
× R
bit
. Determinat¸i num˘arul minim de bit¸i de
ie¸sire pentru fiecare ADC:
a) Rezolut¸ie 0.25V, tensiune maxim˘a 5V,
b) Rezolut¸ie 70mV, tensiune maxim˘a 10V,
c) Rezolut¸ie 8mV, tensiune maxim˘a 12V,
d) Rezolut¸ie 0.75mV, tensiune maxim˘a 12V.
Solut¸ie
Utilizˆand relat¸ia V
max
= 2
n
× R
bit
rezult˘a num˘arul minim de bit¸i:
a) R
bit
= 0.25V , V
max
= 5V , n = 5;
b) R
bit
= 70mV , V
max
= 10V , n = 8;
c) R
bit
= 8mV , V
max
= 12V , n = 11;
d) R
bit
= 0.75mV , V
max
= 12V , n = 14.
3. Un convertor digital-analog (Engl. ”DAC = Digital-Analog Converter”) are o intrare digital˘a pe n bit¸i D
n1
...D
0
¸si produce la ie¸sire o tensiune analogic˘a V
out
ˆın 2
n
trepte de tensiune. Determinat¸i num˘arul minim de bit¸i de
intrare pentru ca circuitul DAC a produc˘a o tensiune de ie¸sire cu urm˘atoarele numere de trepte: 32, 128, 425,
1024.
Solut¸ie
Relat¸ia dintre num˘arul de bit¸i ai convertorului digital-analog ¸si num˘arul maxim de trepte este:
num˘ar trepte 2
bit¸i
.
Rezult˘a numerele de bit¸i: 5, 7, 9, 10.
4. Explicat¸i funct¸ionarea tastaturii de telefon prezentat˘a ˆın figura 1.2. Care este codul binar O
3
O
2
O
1
O
0
I
2
I
1
I
0
care
identific˘a ap˘asarea tastelor: 1, *, 5, 7, 6?
Solut¸ie
Circuitul prezina o matrice de butoane prin ap˘asare, normal deschise. Porturile de intrare ale circuitului de
comand˘a pentru tastatur˘a, I
2
I
1
I
0
, sunt conectate prin rezistent¸e la tensiunea de alimentare. Asta ˆınseamn˘a a,
ˆın mod normal, and butonul este neap˘asat, portul de intrare primest¸e valoarea logic˘a 1. Prin ap˘asarea unui
buton, intrarea corespunz˘atoare prime¸ste valoarea liniei de ie¸sire corespunz˘atoare O
3
O
2
O
1
O
0
. Dac˘a pe linia de
ie¸sire (a andului) se aplic˘a valoarea logic˘a 0, se va putea determina dac˘a butonul a fost ap˘asat sau nu.
Circuitul de comand˘a activeaz˘a secvent¸ial ate o linie ˆın portul de ie¸sire O
3
O
2
O
1
O
0
plasˆand succesiunea de
coduri: 0111, 1011, 1101, 1110. La aplicarea codului 0111 se selecteaz˘a primul and de taste (tastele 1, 2, 3).
Ap˘asarea uneia sau mai multor taste din acest grup este identificat˘a de atre circuitul de comand˘a prin scanarea
portului de intrare I
2
I
1
I
0
. De exemplu, dac˘a a fost ap˘asat˘a tasta 1, I
2
I
1
I
0
= 011. Prin modificarea codului de
ie¸sire O
3
O
2
O
1
O
0
, se modific˘a andul de taste care se scaneaz˘a la intrarea I
2
I
1
I
0
. Tasta 1 se afl˘a la intersect¸ia
andului selectat de O
3
cu coloana scanat˘a pe intrarea I
2
.
22 LECT¸ IA 1. Reprezentarea datelor ˆın sistemele digitale
Figura 1.2 Tastatur˘a de telefon referit˘a la problema 4.
Codul tastei 1 este O
3
O
2
O
1
O
0
I
2
I
1
I
0
= 0111 011.
Codul tastei * este O
3
O
2
O
1
O
0
I
2
I
1
I
0
= 1110 011.
Codul tastei 5 este O
3
O
2
O
1
O
0
I
2
I
1
I
0
= 1011 101.
Codul tastei 7 este O
3
O
2
O
1
O
0
I
2
I
1
I
0
= 1101 011.
Codul tastei 6 este O
3
O
2
O
1
O
0
I
2
I
1
I
0
= 1011 110.
5. Algoritmul uzual de ˆımp˘art¸ire se bazeaz˘a pe ˆınmult¸iri ¸si sc˘aderi repetate. Realizat¸i urm˘atoarele ˆımp˘art¸iri ˆın binar
(obt¸inet¸i atul ¸si restul). Verificat¸i operat¸ia ”deˆımp˘art¸it = ˆımp˘art¸itor × at + rest” cu numerele convertite ˆın
zecimal.
a) 101 1110 : 101 b) 1010 1110 : 1010 c) 1011 0111 : 110 d) 1011 1110 : 1011
Solut¸ie
a) Algoritmul de ˆımp˘art¸ire este:
Deimpartit -> 1011110 | 101 <- Impartitor
101 | 10010 <- Cat
===
---1
0
=
11
00
===
111
101
===
-100 <- Rest
Rezultatul este: at = 10010|
2
, Rest = 100|
2
.
Verificare: 101 1110|
2
= 101|
2
× 1 0010|
2
+ 100|
2
, 5E|
16
= 5|
16
× 12|
16
+ 4|
16
, 94|
10
= 5 × 18|
10
+ 4|
10
, adev˘arat.
1.4. Pentru cei ce vor a devin˘a profesioni¸sti 23
6. Realizat¸i suma ¸si diferent¸a dintre cuplurile de numere propuse, ˆın complement fat¸˘a de 2:
(00110010, 11110011), (10101100, 00010001), (0001111, 00011101), (11001100, 00011111).
Verificat¸i aspunsurile prin conversia numerelor ¸si efectuarea operat¸iilor ˆın baza 10.
Solut¸ie
Operat¸ile de adunare ¸si sc˘adere se pot face direct asupra reprezent˘arilor binare.
ˆ
In cazul adun˘arii, exist˘a relat¸ia: {C
o
, S} = b
1
+ b
2
+ C
i
. S-a notat C
i
transportul de intrare (Engl. ”Carry”),
C
o
transportul de ie¸sire/generat de operat¸ia pe bit pentru bitul de ordin superior ¸si S suma bit¸ilor.
ˆ
In cazul sc˘aderii, exist˘a relat¸ia: {B
o
, D} = b
1
b
2
B
i
. S-a notat B
i
ˆımprumutul de intrare (Engl. ”Borrow”),
B
o
ˆımprumutul de ie¸sire/preluat de operat¸ia pe bit de la bitul de ordin superior ¸si D diferent¸a bit¸ilor.
Aceste operat¸ii sunt exemplificate ˆın figura 1.3.
Adunare Sc˘adere
{C
o
, S} = b
1
+ b
2
+ C
i
{B
o
, D} = b
1
b
2
B
i
b
1
b
2
C
i
C
o
S b
1
b
2
B
i
B
o
D
0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 0 0 1 1 1
0 1 0 0 1 0 1 0 1 1
0 1 1 1 0 0 1 1 1 0
1 0 0 0 1 1 0 0 0 1
1 0 1 1 0 1 0 1 0 0
1 1 0 1 0 1 1 0 0 0
1 1 1 1 1 1 1 1 1 1
Figura 1.3 Exemplificarea formulelor de adunare ({C
o
, S} = b
1
+ b
2
+ C
i
) ¸si sc˘adere ({B
o
, D} = b
1
b
2
B
i
) a bit¸ilor.
1110 010 <- transport 1111 111 <- imprumut
0011_0010 + 0011_0010 - 50 + 50 -
1111_0011 1111_0011 -13 -13
--------- --------- --- ---
0010_0101 0011 1111 37 63
0000 000 <- transport 0010 011 <- imprumut
1010_1100 + 1010_1100 - -84+ -84-
0001_0001 0001_0001 17 17
--------- --------- --- ----
1011_1101 1001_1011 -67 -101