Documente Academic
Documente Profesional
Documente Cultură
Seminar CID PDF
Seminar CID PDF
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).
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:
N=
2i
Zoltan Hascsi
sau
i ,bi 0
N=
hi 16i
sau
i ,hi 0
Exemplu
Exemplu
N n1 = 2 0 = bn1
Exemplu
rest 1 LSB
rest 1
rest 1
rest 0
rest 0
rest 1
rest 0
rest 1 MSB
Zoltan Hascsi
rest 2
rest 13
rest 5
rest 11
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
Exemplu
= 0.464 + 8
= 0.424 + 7
= 0.784 + 6
= 0.544 + 12
Zoltan Hascsi
Conversia unui numr oarecare se face separat pentru partea ntreag i pentru partea
fracionar.
Exemplu
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
Zoltan Hascsi
+
+
+
+
0
1
0
1
= 0
= 1
= 1
= 10
Rezultatul adunrii de pe ultima linie (1 + 1) este scris pe doi bii deoarece 1 + 1 = 2, iar 2 n
binar se scrie 102.
Dou numere binare se adun dup binecunoscutul algoritm din clasele primare. Se adun
cifrele de acelai rang. Dac apare transport la adunarea a dou cifre, acesta se adun mpreun
cu cifrele de rang imediat superior.
Exemplu
10010 +
18 +
10111
23
101001
41
3.2 Scderea n binar
Iat i regulile de scdere a dou cifre binare:
00=0
0 1 = 1 mprumut 1
10=1
11=0
i la scdere algoritmul este cel folosit la scderea numerelor zecimale. Se scad cifrele de
acelai rang, iar dac la scderea a dou cifre este nevoie de un mprunut, acesta se scade din
cifra de rang imediat superior a desczutului.
Exemplu
10111
23
10010
18
00101
5
Exemplu
10010
111
1011
18
7
11
3.3 nmulirea cu 2
Zoltan Hascsi
zecimal (sau altfel spus, o deplasare la dreapta cu o cifr a punctului zecimal), iar cifra binar este
0 sau 1, nmulirea n binar se rezum la o serie de shiftri i adunri. Pentru a simplifica i mai
mult imaginea putem s lum n considerare doar cifrele nmulitorului diferite de 0.
Exemplu
10111
10010
00000
10111
00000
00000
10111 ___
110011110
b0
b1
b2
b3
b4
=0
=1
=0
=0
=1
23
18
414
A = an1.... a1a0
A ' = a'n1 .... a'1 a'0
(A' este chiar complementul fa de 1 al lui A i se obine inversnd fiecare cifr a lui A.)
A + A ' = 1...11= 2n 1
A + A ' +1 = 2n
de unde rezult
Ac = A' + 1
Exemplu
Zoltan Hascsi
0
00000000
+1
00000001
+2
00000010
......
........
+126
01111110
+127
01111111
- 128
10000000
127
10000001
126
10000010
..............
2
11111110
1
11111111
5. Adunarea n complement fa de 2
Comprim att adunarea ct i scderea numerelor binare. Scderea unui numr binar este
privit ca o adunare cu complementul acestuia. Vom prezenta ntr-un exemplu toate cazurile
posibile de adunare a dou numere n complement fa de 2:
Exemplu
7 = 00111
12 = 01100
5 = 00101
7 = 11001
12 = 10100
5 = 11011
00111 +
00101
01100
7+
5
12
00111 +
01100
10011
00111 +
11011
100010
7+
5
2
00111 +
10100
11011
11001 +
11011
110100
7 +
5
12
11001 +
10100
101101
7+
12
19
depire!
7+
12
5
7 +
12
19 depire!
Zoltan Hascsi
N = M 2E
Noiuni noi:
bit
byte
MSB
LSB
complement fa de 1
complement fa de 2
floating-point