Documente Academic
Documente Profesional
Documente Cultură
Bazele Numerice
Bazele Numerice
BAZELE NUMERICE
ALE CALCULATOARELOR
Baza (b)
2
8
10
16
Cifrele
(0,1)
(0,1,2,3,4,5,6,7)
(0,1,2,3,4,5,6,7,8,9)
(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
0 ai b-1 (i = 0n)
exist egalitatea:
0 ai b-1 (i = m, n ) ;
nu exist un rang k astfel nct s avem:
( N I )b = a n q n + a n-1 q n-1 + + a0 q 0 ,
unde a i (i = 0, n) sunt cifre ce aparin sistemului de numeraie n baza q.
Conversia prii ntregi (NI)b n baza q se va reduce la determinarea
coeficienilor a i (i = 0, n) , ce se obin prin mprirea succesiv a lui (NI)b
cu q, astfel:
(NI)b/q=(anqn-1+an-1qn-1+,...,+a1) + a0/q a0
(NI1)b - partea ntreag
a ctului
Rest
(a0)
(a1)
octal
hexazecimal
248
248
248
124
31
15
15
62
31
15
Aadar, (248)10=(11111000)2=(370)8=(F8)H
Exemplul 2.
Pentru a face conversia din baza 2 n baza 8 sau 16 se poate porni de
la reprezentarea n baza 2 a numrului i deoarece 8=23 iar 16=24, se pot
face grupri de 3 respectiv 4 cifre binare pentru a obine reprezentarea n
aceste baze. n cazul numerelor ntregi gruparea se face ncepnd de la
CCMPS (de la dreapta la stnga numrului).
(248)10=( 11 111 000 )2=(370)8
(248)10=( 1111 1000 )2=(F8)H
Exemplul 3.
Pentru a face conversia din baza 8 n baza 2 vom nlocui fiecare
cifr a numrului scris n baza 8 cu un grup de 3 cifre binare, conform
tabelului 4.2.
Conversia rapid din baza 8 n baza 2
Tabelul 4.2
Cifra din baza 8
0
1
2
3
4
5
6
7
Folosind datele din tabelul anterior, numrul (734)8 = (111 011 100)2
prin conversie direct.
Exemplul 4.
Pentru a face conversia din baza 16 n baza 2 vom nlocui fiecare
cifr a numrului scris n hexazecimal cu un grup de 4 cifre binare, conform
tabelului 4.3.
unde: a-1 reprezint cifra cea mai semnificativ a prii fracionare. Teoretic,
algoritmul ar trebui s se ncheie cnd partea fracionar devine egal
cu zero, ceea ce se ntmpl ntr-un numr limitat de cazuri.
n practic, procedeul are un numr finit de pai, n funcie de
precizia aleas. De exemplu, pentru a obine o precizie bun, pentru fiecare
cifr zecimal trebuie calculate 4 cifre binare (n cazul conversiei din
zecimal n binar).
Exemplul 5
Fiind dat numrul (0,251)10 s se realizeze conversia n sistemele:
binar, octal i hexazecimal.
Rezolvare.
a. Conversia n octal
0,2518=2 + 0,008
0,0088=0 + 0,064
0,0648=0 + 0,512
0,5128=4 + 0,096
0,0968=0 + 0,768
2
0
0
4
0
(a -1)
(a -2)
(a -3)
(a -4)
(a -5)
(0,251)10=(0,20040)8
b. Conversia n hexazecimal
0,25116=4 + 0,016 4 (a -1)
0,01616=0 + 0,256 0 (a -2)
0,25616=4 + 0,096 4 (a -3)
(0,251)10=(0,404)H
c. Conversia n binar
0,2512=0 + 0,502
0,5022=1 + 0,004
0,0042=0 + 0,008
0,0082=0 + 0,016
0,0162=0 + 0,032
0,0322=0 + 0,064
0,0642=0 + 0,128
0,1282=0 + 0,256
0,2562=0 + 0,512
0,5122=1 + 0,024
0,0242=0 + 0,048
0,0482=0 + 0,096
0,0962=0 + 0,192
0,1922=0 + 0,382
0,3822=0 + 0,762
0,7622=1 + 0,524
0,5242=1 + 0,048
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
(a -1)
(a -2)
(a -3)
(a -4)
(a -5)
(a -6)
(a -7)
(a -8)
(a -9)
(a-10)
(a-11)
(a-12)
(a-13)
(a-14)
(a-15)
(a-16)
(a-17)
(0,251)10=(0,01000000010000011)2
Calculul simplificat pentru conversia n:
binar
octal
hexazecimal
251
251
251
502
008
016
004
064
256
008
512
096
016
096
032
768
064
128
256
512
024
Conversia prii
fracionare
23
65
11
30
60
20
40
80
60
20
40
Exemplul 7.
S se fac conversia din binar n zecimal a numrului (1100011)2.
(1100011)2=126 + 125 + 024 + 023 + 022 + 121 + +120 = (99)10
Exemplul 8.
Conversia din binar n zecimal a numrului (110,101)2
(110,101)2=122 + 121 + 020 + 12-1 + 02-2 + 12-3 = 6 + 0,5 + 0,125 =
= (6,625)10
Exemplul 9.
Conversia din octal n zecimal a numrului (235)8.
(235)8=2 82 + 381 + 580=128 + 24 + 5=(157)10
Exemplul 10.
Conversia din hexazecimal n zecimal a numrului (23F)H.
(23F)H=2162 + 3161 + 15160=512 + 48 + 15=(575)10
a n 2n +
n-1
i= m
a i 2i
0 dac N 0
an =
1 dac N p 0
Exemplu.
S se reprezinte n cod direct (pe 16 bii) numrul (27)10, respectiv
numrul -(27)10.
Rezolvare.
CD
(0000000000011011) 2
b semn
- (27 )10
CD
(1000000000011011) 2
n
0 2 + ai 2i
CI
i=- m
N=
n-1
n
i
1 2 + ai 2
i=- m
dac N 0
dac N p 0
Observaie.
Reprezentarea prin complement fa de 1 se obine astfel:
1. Fie calculnd:
CI
N = 2 n+ 1 -| N |CD - 2- m
(14 )10
CD, CI
( 0000 1110 )
=
semn
= 28 - ai 2i -
20
i=0
ai ( i = 1,6 ) reprezint cifrele binare ale numrului (14)10, iar a7="0" este
cifra de semn. Calculnd:
1 0000 0000 0000 1110
CI
- (14)
Aadar:
1111 0010 1
1111 0001
(1111 0001 )2
semn
0 2n + ai 2i
pentru N 0
CC
i= m
N =
n-1
n
~ i
12 + a i 2 pentru N p 0
i= m
unde:
n-1
i= m
~a 2i =
i
n-1
i= m
ai 2i + 2-m
= 2n +1
- | N|CD
ca la reprezentarea n CI;
2. Fie adunnd un 1 la CCMPS a reprezentrii numrului n CI;
3. Dac se consider reprezentarea n CD a numrului n valoare
absolut, pentru obinerea codului complementar, ncepnd de la CCMPS se las neschimbate toate cifrele de zero, inclusiv prima cifr binar a crei
valoare este 1; apoi toate celelalte cifre binare se vor inversa, inclusiv cifra
de semn.
Exemplu.
S se reprezinte n CC numerele 14 i -14 (pe un octet).
Rezolvare.
CD,CI,CC
14
(0000 1110 )2
semn
- (14 )10 = 28
a i 2i
i=0
2.
CI
= (1111
- (14)
0001 )2
1
CC
- (14)
= (1111
0010 )2
3.
Cifre binare nemodificate
CD
14 = ( 000011 10)2
Cifrele binare se vor modifica 0 1 i 1 0.
CC
14 = (11110010) 2
n sistemul octal sau hexazecimal vom avea:
CC
- (14)
= (362 )8
= (F 2 ) H
formatul scurt:
formatul lung:
0 dac N 0
Lungime
Precizie
Domeniul de
valori (binar)
Domeniul de valori
(zecimal)
Format
word
16
15
-215 215-1
-32768 32767
Format
scurt
32
31
-231 231-1
-2.14*109 2.14*109
Format
lung
64
63
-263 263-1
-9.22*1018 9.22*1018
bitul de semn:
0 dac N 0
S=
1 dac N < 0
1
(f ) b < 1
b
Pentru reprezentarea n virgul mobil a unui numr real N, ntr-un
calculator din familia IBM-PC se consider:
N=2E (f)2
1(f)2<2 iar (f)2=I0f1f2...fn (I0 = 1 iar valoarea lui n depinde de
formatul ales).
dubl precizie:
< N >=< S > ( 0.1 < fractie > )2 * 2< EXP> (80)h
2) Formatul real sau formatul IEEE (Institute of Electrical and
Electronics Engineers) 754, aprut n anul 1985:
simpl precizie (format scurt), avnd macheta:
unde:
S - bit de semn (S=0 dac N0 i S=1 dac N<0);
fi - cifrele binare ale zonei exponent (EXCES=127 sau 1023);
unde:
S - bit de semn;
I0 - bitul prii ntregii, ce se memoreaz n formatul temporar,
implicit n formatul scurt i lung;
fi - cifrele binare ale fraciei;
Ei - cifrele binare ale zonei exponent,
N1 = 120 ; N2 = -120
a) Format binar
VM
N1
= (8100
0000 ) H
VM
N2
= (8180
0000 ) H
b) Format real
N1=(3F800000)H
N2=(BF800000)H
Exemplu
Fie N1 = (8561 0000)H - reprezentarea n virgul mobil simpl
precizie format binar. S se determine numrul din zecimal.
Rezolvare.
N1=25(0,1110000100...0)2=25x(2-1+2-2+2-3+2-8) = 24+23+22+2-3=28,125
4.3.3 Numere i valori speciale
Exemplu.
S se reprezinte n zecimal codificat binar (n BCD) numerele
zecimale N1=9450 i N2=78431.
Rezolvare.
N1=(1001 0100 0101 0000)2 - format mpachetat
N2=(0111 1000 0100 0011 0001)2 - format mpachetat
unde:
S - bit de semn ( 0 pentru numere pozitive, 1 pentru numere negative);
Di - cifr zecimal (dou cifre per octet);
X - bii nefolosii.
Numerele negative se deosebesc de cele pozitive prin bitul de semn.
4.4 Operaii aritmetice n sistemul binar
4.4.1 Adunarea n binar
10
Exemplu.
S se nsumeze n binar (00010101)2 cu (10010111)2. Vom avea:
(00010101)2 +
(10010111)2
(21)10 +
(151)10
(10101100)2
(172)10
Exemplu.
S se scad n binar:
(11011)2 (27)10
(01111)2 (15)10
(01100)2
(12)10
11012
10012
11012
00002
00002
11012
11101012
Deci (1101)2 x (1001)2 = (1110101)2
(13)10 x (9)10=(117)10
+
0
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
A
a
B
B
C
C
D
D
E
E
F
F
10
10 11
10 11 12
10 11 12 13
10 11 12 13 14
10 11 12 13 14 15
10 11 12 13 14 15 16
10 11 12 13 14 15 16 17
A A
10 11 12 13 14 15 16 17 18
B B
10 11 12 13 14 15 16 17 18 19
C C
10 11 12 13 14 15 16 17 18 19
D D
10 11 12 13 14 15 16 17 18 19
E E
10 11 12 13 14 15 16 17 18 19
F 10 11 12 13 14 15 16 17 18 19
* 0 1
0 0 0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
0
A
0
B
0
C
0
D
0
E
0
F
0
1 0 1
2 0 2
E 10 12 14 16 18 1A 1C 1E
3 0 1
12 15 18 1B 1E 21 24 27 2A 2D
4 0 4
10 14 18 1C 20 24 28 2C 30 34 38 3C
5 0 5
14 19 1E 23 28 2D 32 37 3C 41 46 4B
6 0 6
12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
7 0 7
15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
8 0 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78
9 0 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96
B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C 0 C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E 0 E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F 0 F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1
10
10
11
10
11
12
10
11
12
13
10
11
12
13
14
10
11
12
13
14
15
10
11
12
13
14
15
16
10
12
14
16
11
14
17
22
25
10
14
20
24
30
34
12
17
24
31
36
43
14
22
30
36
44
52
16
23
34
45
52
61
N1
= an
CD
N2
2n
n-1
+ ai 2i
i= m
= bn
2n
bi
{0,1}
n-1
+ bi2i
i= m
CD
ai
n
N1 + N 2 = a n 2 +
{0,1}
n -1
(a + b + t ) 2
i
i = m
Exemplu
S se nsumeze N1 cu N2, avnd N1=(40)10 i N2=(60)10.
Rezolvare.
CD
N1
= (00101000 )2
CD
N2
= (00111100 )2
CD
N1 + N 2
= (01100100 )2
N1
CD
N2
(00101000 )2
(01011010 )2
CD
N1 + N 2 = (10000010 )2
Bitul CMS al mrimii rezultatului
Deoarece n acest caz rezult transport de la bitul CMS, rezultatul este
incorect. (Rezultatul nsumrii celor dou numere nu poate fi reprezentat
utiliznd doar apte cifre binare).
Exemplu
S se calculeze N1+N2, avnd N1= -25 i N2= -30.
Rezolvare.
CD
N1
CD
N2
(1 0011001 )2
(1 0011110 )2
CD
N1 + N 2
= (1
0110111 )2
Verificnd:
N 1 +N 2 = -(0 2 6 +1 2 5 +1 2 4 +0 2 3 +1 2 2 +1 2 1 +1 2 0 )
N 1 +N 2 = -55, rezultat corect
Exemplu
S se calculeze N1+N2, avnd N1= -75 i N2= -80
Rezolvare.
CD
N1
= (11001011 )2
CD
N2
= (11010000 )2
CD
N1 + N 2 = (10011011 )2
N1 = 28 - | N1 |CD - 20
CI
N2
= 2 -| N
8
2 CD
-2
CI
N1 + N 2 = 28 + 28 -| N 2 |CD -| N 2 |CD - 2 0 - 2 0
Avnd n vedere c rezultatul trebuie s fie de forma:
CI
CI
N1 + N 2 = 28 - (| N1|CD +| N 2 |CD ) - 20 + 28 - 20
Rezultat
Bitul CMPS
Exemplu.
S se calculeze N1+N2, avnd: N1= -30 i N2= -14.
Rezolvare
CI
N1 = ( 1110 0001 )2
CI
N 2 = ( 1111 0001 )2
CI
N1 + N 2 = (1 1101 0010 )2 +
1
CI
N1 + N 2 = (1101 0011 )2
CD
N1 + N 2 = (1010 1100 )2
Exemplu.
S se calculeze N1+N2, avnd N1= -81 i N2= -72
Rezolvare.
CI
N1 = ( 1010 1110 )2
CI
N 2 = ( 1011 0110 )2
CI
N1 + N 2 = (1 0110 0100 )2 +
1
CI
N1 + N 2 = (0110 0101 )2
N1 + N 2 > 0
Rezultatul este eronat, deoarece cel mai mic numr ntreg ce se poate
reprezenta n cod invers pe un octet este -127.
Adunarea/scderea numerelor cu semne diferite
N 2 = 28 -| N 2 |CD - 2 0
n urma operaiei de adunare obinem:
CI
Exemplu.
S se calculeze N1 + N2, avnd N1=91 i N2=-20.
Rezolvare.
CI
N1 = ( 0101 1011 )2
CI
N 2 = ( 1110 1011 )2
CI
N1 + N 2 = (1 0100 0110 )2 +
1
CI
rezultat corect
N1 + N 2 = (0100 0111 )2
Exemplu.
S se calculeze N1+N2, avnd N1= -91 i N2= 20.
Rezolvare.
CI
N1 + N 2 = (1011 1000 ) 2
CI
N 2 = ( 0001 0100 ) 2
CD
N1 + N 2 = (1100 0111 ) 2
N1 = 28 -| N1|CD
CC
N 2 = 28 -| N 2 |CD
Transportul de la bitul
de semn
Exemplu.
CC
N1 = ( 1111 0010 )2
N 2 = ( 1011 1000 )2
CC
N1 + N 2 = (1 1010 1010 )2
Se ignor
Pentru verificarea rezultatului se va calcula:
CD
N1 + N 2
= (11010110 )2
= - (1 26 + 1 24 + 1 22 + 1 21) = - 86
N2
= 28 -| N 2 |CD
N1 + N 2
Exemplul.
S se calculeze N1 + N2, avnd N1= 33 i N2= -23.
Rezolvare.
CC
N1 = ( 0010 0001 )2
CC
N 2 = ( 1110 1001 )2
CC
N1 + N 2 = (1 0000 1010 )2
Transport care se neglijeaz
Verificarea: N 1 +N 2 = 1 2 3 +1 2 1 =(10) 1 0
Exemplu.
S se calculeze N1+N2, avnd N1 = -33 i N2 = 3
CC
N1 = ( 1101 1111 )2
CC
N 2 = ( 0001 0111 )2
CC
N1 + N 2 = ( 1111 0110 )2
N1 + N 2
= (1000 1010 )2
_ N1 + N 2 = - (10 )10
b) nmulirea i mprirea
N1 = 2n1 ( f 1 )2
N 2 = 2n 2 ( f 2 )2
N1 * N 2 = 2n1+n 2 x ( f 1 x f 2 )2 iar
N1 / N 2 = 2n1-n 2 x ( f 1 / f 2 )2
Exemplu.
S se adune n codul numeric 8421 numerele N=883 i M= 592.
4.7.2
Scderea n 8421
Exemplu
S se scad, n codul 8421, din numrul N= 1032, numrul M = 974.