Sunteți pe pagina 1din 27

Sistemul binar

La sfritul anilor 1930, Claude Shannon a demonstrat c cu ajutorul unor ntreruptoare nchise
pentru adevrat i deschise pentru fals, este posibil s efectum operaii logice
asociind numrul 1 pentru adevrat i 0 pentru fals.
Omul calculeaz de peste 2000 de ani n baza 10. Totui alte civilizaii sau pentru aplicaii
specifice se folosesc i alte baze de calcul
Baza sexagesimal (60), utilizat de sumerieni.Sistemul orar actual.
Baza 20, utilizat de maiai ;
Baza 12 utilizat de anglosaxoni n sistemul monetar pn n 1960; un pound reprezenta 12
ilingi, iar un iling 12 pence. Sistemul orar actual (mai ales n notaia anglosaxon) ;
Baza 5, utilizat de maiai ;
Baza binar 2, utilizat de ansamblul tehnologiilor numerice.
1
Scrierea poziional
Permite descrierea algoritmic a operaiilor aritmetice.
Adunarea a dou numere naturale oarecare este foarte dificil de realizat n scriere roman (care nu
este poziional), dar simplu de realizat n baza 10 (care este o scriere poziional).
Spunem c lucrm n baza de numeraie d, care este un numr natural supraunitar, dac avem la
dispoziie d simboluri (cifre), avnd asociate respectiv valorile 0, 1, ..., d-1.
Un numr este reprezentat ntr-o baz oarecare d ca un ir de cifre, fiecare poziie i din ir avnd
ataat un factor implicit egal cu d
i
.
Un numr natural N va avea ca reprezentare n baza d irul de cifre a
n-1
a
n-2
...a
1
a
0
, a
i
e{0,1,...,d-1}, ,
cu proprietatea c:

=
=
1
0
n
i
i
i
d a N 2
Ce este un bit?
Valoare binar
cu 3 bii
Valoare
decimal
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Cu n bii putem obine 2
n
bii
Termenul bit (b cu liter mic) provine din binary digit, adic 0 sau 1 n numerotare binar.
Este cea mai mic unitate manipulabil de o main numeric.
Poate fi reprezentat fizic de:
Un semnal electric sau magnetic, care dac sunt mai mari de un anumit prag corespund valorii 1.
Prin asperiti geometrice ntr-o suprafa;
Cu ajutorul sistemelor bistabile, adic a componentelor electronice care au dou stri de echilibru,
Cu un bit putem obine dou stri, fie 0 fie 1.
Cu 2 bii putem obine 4 stri diferite:00, 01, 10, 11
Cu 3 bii putem obine 8 stri diferite
3
Ponderea biilor
ntr-un numr binar, valoarea unui bit, numit greutate, depinde de poziia bitului
plecnd de la dreapta. La fel ca n cazul zecilor i sutelor pentru un numr zecimal,
ponderea unui bit crete de cte dou ori de la dreapta la stnga.
Numr binar 1 1 1 1 1 1 1 1
Pondere 2
7
= 128 2
6
= 64 2
5
= 32 2
4
= 16 2
3
= 8 2
2
= 4 2
1
= 2 2
0
= 1

4
Operaii n sistemul binar
Adunarea n sistemul binar se face dup
aceleai reguli ca n sistemul decimal
0 1 1 0 1
+ 0 1 1 1 0

1 1 0 1 1

5
Operaii n sistemul binar
0 1 0 1 denmulit
x 0 0 1 0 nmulitor
- - - - - -
0 0 0 0
0 1 0 1
0 0 0 0
- - - - - -
0 1 0 1 0
Tabla nmulirii n binar este foarte simpl :
0x0=0
0x1=0
1x0=0
1x1=1
nmulirea se face formnd un produs parial pentru fiecare digit al
multiplicatorului. Doar biii nenuli vor da un rezultat nenul. Dac bitul
multiplicatorului este nul, produsul parial este nul, iar dac este 1, produsul
parial este constituit din multiplicand decalat cu un numr de poziii egal cu
ponderea multiplicatorului.
6
Conversii
Pentru a converti un numr binar ntr-un numr decimal este suficient s multiplicm
valoarea fiecrui bit cu ponderea sa, apoi s adunm rezultatele
11111111
(2)
=?
(10)
1010001
(2)
= 12
6
+ 02
5
+ 12
4
+ 02
3
+ 02
2
+ 02
1
+ 12
0
= 81
(10)
Pentru a converti un numr decimal ntr-un numr binar, se mparte
numrul la 2 i se reine restul.
Ctul se mparte la rndul su la 2, iar procesul de repet pn cnd
se obine ctul 0.
Reprezentarea n baza 2 este irul resturilor obinute, luate n ordine
invers (de jos n sus)
230 0
115 1
57 1
28 0
14 0
7 0
3 1
1 1
0
230
(10)
= 11000110
(10)
7
Octetul-byte
Octetul (byte sau B cu majuscul n notaii) este o unitate de informaie compus din 8 bii. Un
octet permite stocarea unui caracter, fie el liter sau cifr.
O unitate de informaii de 16 bii este n general numit cuvnt (n englez word).
O unitate de informaie de 32 bii este numit cuvnt dublu (n englez double word, de unde
numele dword).
Pentru un octer cel mai mic numr este 0, reprezentat prin 8 zerouri, iar cel mai mare 255,
reprezentat prin 8 cifre de 1 adic 11111111, ceea ce reprezint 256 de posibiliti de valori
diferite.
8
Reprezentarea unui numr
Numim reprezentare sau codificare modul n care acesta se scrie sub form binar.
Reprezentarea numerelor ntr-un calculator este indispensabil pentru stocare i
manipularea lor.
Ar fi neproductiv s codm un caracter n 16 bii (65536 posibiliti)
dac utilizm n general mai puin de 256.
Un ntreg natural este un ntreg pozitiv sau nul. Alegerea pe care o facem depinde de paleta
numerelor pe care dorim s o utilizm.
Pentru a coda numere ntregi naturale cuprinse ntre 0 i 255 avem nevoie de 8 bii.
n general o codare cu n bii ne va permite s reprezentm numere ntregi naturale cuprinse ntre 0
i 2
n-1
.
9
Reprezentri cu semn
Dac dorim s lucrm cu numere ntregi, deci cu semn, scrierea poziional singur nu mai
este suficient.
n acest caz, pe lng cifrele bazei de numeraie mai este nevoie i de un simbol suplimentar
(semnul).
Deoarece nu avem la dispoziie un simbol suplimentar, pentru reprezentarea semnului va fi folosit
unul dintre bii, care nu va mai avea semnificaia obinuit unei cifre din scrierea poziional.
Bitul cel mai semnificativ (cel cu indicele n-1) va indica semnul numrului i va fi numit bit de semn.
Prin convenie, valoarea 1 a bitului de semn indic un numr negativ, iar valoarea 0 un numr
pozitiv reprezentarea modul-semn
Formal, reprezentarea unui numr ntreg N este irul de bii a
n-1
a
n-2
...a
1
a
0
, cu proprietatea c:
( )

=
=

2
0
2 1
1
n
i
i
i
a
a N
n
10
Reprezentri cu semn
Reprezentarea modul-semn a unui numr este unic, cu excepia numrului 0: se observ
imediat c n acest caz, dac biii care formeaz modulul au toi valoarea 0, n schimb bitul
de semn poate fi att 0, ct i 1.
Mai important, n cazul numerelor cu semne diferite adunarea numerelor n reprezentarea modul-
semn nu mai urmeaz algoritmul clasic, specific scrierii poziionale.
Adunai de exemplu numerele 6 i -13
Rezultat= -19!!!!
00000110+
10001101
10010011
11
Reprezentarea n complement
fa de 2
Reprezentarea n complement fa de 2 a unui numr ntreg N este irul de bii a
n-1
a
n-2
...a
1
a
0
,
cu proprietatea c:
Algoritmul de obinere al reprezentrii numrului -x pornind de la reprezentarea numrului x:
- se parcurge irul de bii de la dreapta la stnga
- ct timp biii au valoarea 0, sunt lsai nemodificai
- primul bit ntlnit cu valoarea 1 este de asemenea lsat nemodificat
- dup acest prim bit cu valoarea 1, toi biii care urmeaz (indiferent de valoarea lor) sunt inversai

< = +
> =
=

) 0 ( 1 pentru 2 2
) 0 ( 0 pentru 2
1
2
0
1
1
2
0
N a a
N a a
N
n
n
i
i
i
n
n
n
i
i
i
Numrul 13 este 00001101
Numrul -13 este 11110011
( )

=
=

2
0
2 1
1
n
i
i
i
a
a N
n
00000110+
11110011
11111001 12
Reprezentri zecimale
Datorit caracterului finit al oricrei reprezentri, nu putem lucra cu adevrat cu numere
reale, ci doar cu numere raionale
Nu vom avea la dispoziie nici mcar toate numerele raionale dintr-un anumit interval, ci doar o
parte dintre acestea.
Una dintre caracteristicile importante ale acestor reprezentri este distana dintre dou numere
reprezentabile succesive (care n cazul numerelor ntregi este 1).
Din numrul total de bii disponibil pentru o reprezentare, unii vor fi folosii pentru partea ntreag,
iar restul pentru partea zecimal
Avem nevoie de un simbol suplimentar (virgula), pe lng cele pentru cifre.
13
Conversii zecimale
Conversia din baza 2 n baza 10 este imediat.
Fie de exemplu numrul 1010001,11011
(2)
.
La fel ca n cazul numerelor naturale, avem:
1010001,11011
(2)
= 12
6
+ 02
5
+ 12
4
+ 02
3
+ 02
2
+ 02
1
+ 12
0
+ 12
-1
+ 12
-2
+ 02
-3
+ 12
-4
+ 12
-5
=
81,84375
(10)
La conversia din baza 10 n baza 2, partea ntreag i partea zecimal trebuie calculate separat.
Pentru partea zecimal se procedeaz astfel:
Se nmulete partea zecimal cu 2 i se reine cifra de la partea ntreag (nu poate fi dect o
singur cifr semnificativ, cu valoarea 0 sau 1). Noua parte zecimal se nmulete la rndul su
cu 2, iar procesul se repet pn cnd partea zecimal devine 0. irul cifrelor obinute la partea
ntreag din fiecare nmulire formeaz rezultatul cutat.
Fie numrul 230,5625
(10)
. Partea ntreag se scrie n baza 2 sub forma 11000110. Aplicnd
algoritmul prezentat mai sus pentru partea zecimal, obinem:
irul cifrelor obinute la partea ntreag este 0101, deci 0,3125
(10)
= 0,0101
(2)
.
Ca urmare, 230,5625
(10)
= 11000110,1001
(2)
.
0 5625
1 125
0 25
0 5
1 0
14
Problem la conversii zecimale
Unui numr finit de zecimale n baza 10 poate s-i corespund un numr infinit de zecimale n baza
2 (invers nu este posibil).
De exemplu, fie numrul 0,2
(10)
.
ntr-un asemenea caz este evident imposibil s obinem o
reprezentare exact a numrului. Soluia este s calculm attea
zecimale n baza 2 cte ncap n reprezentare, obinnd astfel cea mai
bun aproximare pe care o putem memora
Dac ne propunem s reprezentm numrul cu 4 bii la partea zecimal, vom obine aproximarea
0,0011
(2)
; dac folosim 8 bii, obinem 0,0011001
(2)
0 2
0 4
0 8
1 6
1
0
0
1
2
4
8
6
15
Erori
S calculm 0.2+0.3 dac folosim 4 bii sau 8 bii
0,2
(10)
=0,0011
(2)
0,3
(10)
=0,0100
(2)
4 bii
0.0011+
0.0100
0.0111
Conversia reciproc: 0.0111
(2)
= 0,4375
(10)
!!!!!!!
0,2
(10)
=0,0011001
(2)
0,3
(10)
=0,0100110
(2)
4 bii
0.0100110+
0.0011001
0.0111111
Conversia reciproc: 0.0111
(2)
= 0,4921875
(10)
16
Reprezentri n virgul fix
Separarea ntre partea ntreag i partea zecimal a reprezentrii se face ntotdeauna la fel.
Vom avea ntotdeauna n bii pentru partea ntreag i m bii pentru partea zecimal
Se pornete de la reprezentarea n complement fa de 2 i se decide ca un numr de bii s fie
rezervai prii ntregi.
Reprezentarea unui numr N pe n+m bii este irul de bii a
n-1
a
n-2
...a
1
a
0
a
-1
a
-2
...a
-m
, cu proprietatea:

< = +
> =
=

) 0 ( 1 pentru 2 2
) 0 ( 0 pentru 2
1
2
1
1
2
N a a
N a a
N
n
n
m i
i
i
n
n
n
m i
i
i
17
Reprezentri n virgul fix
Dezavantaje:
odat fixate valorile pentru n i m, s-au stabilit n mod definitiv att ordinul de mrime al numerelor
reprezentabile (dat de n), ct i precizia reprezentrii (dat de numrul de zecimale, adic m).
Pentru aceeai dimensiune total a unui operand, putem prefera, de exemplu, ca n unele cazuri s
lucrm cu numere mai mici, dar cu o precizie mai bun; aceasta s-ar putea realiza scznd n i
crescnd m, astfel nct suma lor s rmn aceeai.
Reprezentarea n virgul fix nu permite asemenea adaptri, deoarece valorile n i m nu pot fi
modificate.
18
Reprezentri n virgul mobil
Ideea de pornire provine din calculul tiinific, unde se folosete notaia cu exponent.
Mai concret, un numr ca 123,45 poate fi scris sub forma 1,234510
2
.
Pentru aceeai baz de numeraie pot exista mai multe perechi mantis-exponent care s
reprezinte acelai numr.
De exemplu, numrul 123,45 poate fi scris i sub forma 12,34510
1
.
Se folosete ntodeauna perechea n care mantisa are exact o cifr semnificativ nainte de virgul;
se spune n acest caz c mantisa este normalizat.
Avantajul acestei notaii este c nu mai apar probleme privind numrul de bii alocat prii ntregi i
respectiv prii zecimale a numrului.
Observm c n scrierea tiinific intervin trei elemente:
- mantisa (n cazul de fa 1,2345), care poate fi privit ca fiind "corpul" numrului
- baza de numeraie (10)
- exponentul (2) la care este ridicat baza de numeraie
19
Reprezentri n virgul mobil
Structura general a unei reprezentri n virgul mobil este urmtoarea ):
- Bitul cel mai semnificativ, notat cu S, indic semnul numrului, dup convenia deja cunoscut (1
- negativ, 0 - pozitiv). Urmtoarele cmpuri determin modulul numrului.
- Urmtorii bii rein exponentul ntr-o form modificat, numit caracteristic (C)
- Restul de bii formeaz mantisa.(M)
Deoarece numrul poate fi supraunitar sau subunitar, rezult c exponentul poate fi pozitiv sau
negativ. Ca atare, pentru exponentului trebuie folosit o reprezentare cu semn (separat de bitul de
semn al numrului).
20
Reprezentri n virgul mobil
Reprezentarea exponentului:
Pentru a uura comparaia ntre dou numere se folosete reprezentarea n exces:
Concret, dac avem n bii pentru exponent, atunci exponentul poate lua valori ntre -2
n-1
+ 1 i 2
n-1
.
Apoi, din exponent se obine caracteristica prin formula C = E + (2
n-1
- 1), unde 2
n-1
- 1 este o
constant numit exces.
Se observ imediat c ntodeauna C > 0, deci pentru caracteristic se poate folosi scrierea
poziional, ceea ce permite implementarea uoar a operaiei de comparare.
Mantisa trebuie s fie normalizat, adic s aib exact o cifr semnificativ la partea ntreag.
n baza 2, singura cifr semnificativ este 1, deci mantisa este de forma 1,...; deoarece partea
ntreag a mantisei este ntotdeauna la fel, ea nu mai trebuie memorat. Ca urmare, cmpul M va
memora numai biii corespunztori prii zecimale a mantisei.
21
Reprezentri n virgul mobil
a) Reprezentarea n simpl precizie, care ocup 32 bii (4 octei), repartizai astfel:
- bitul de semn
- 8 bii pentru caracteristic
- 23 bii pentru mantis
b) Reprezentarea n dubl precizie, care ocup 64 bii (8 octei):
- bitul de semn
- 12 bii pentru caracteristic
- 51 bii pentru mantis
22
Exemplu
Considerm numrul 230,5625
(10)
i vom vedea care sunt paii care trebuie parcuri pentru a
obine reprezentarea sa n virgul mobil, simpl precizie.
-n primul rnd, scriem numrul poziional n baza 2.
230,5625
(10)
= 11000110,1001
(2)
.
Urmeaz scrierea sub form de mantis i exponent, cu mantisa normalizat:
11000110,1001 = 1,100011010012
7
- Cmpul M rezult imediat, fiind format din partea zecimal a mantisei. Deoarece mantisa are
numai 11 bii semnificativi, iar cmpul M are 23 bii, ultimii 12 bii din M primesc valoarea 0 (sunt
nesemnificativi):
M = 10001101001000000000000
- Caracteristica se calculeaz din exponent:
E = 7 C = E + (2
7
- 1) = 7 + 127 = 134
Scris n baza 2, pe 8 bii: C = 10000110
- Bitul de semn are valoarea S = 0, deoarece numrul este pozitiv.
Concatennd irurile de bii corespunztoare celor 3 cmpuri, obinem reprezentarea n simpl
precizie 0 1000011010001101001000000000000
(2)
Deoarece numrul de bii este mare i deci dificil de controlat, n practic se prefer
scrierea n baza 16, mai concis: 10001101001000000000000
(2)
= 4506E700
(16)
23
Reprezentri n virgul mobil
Cteva caracteristici ale reprezentrilor n virgul mobil:
a) simpl precizie
- cel mai mic numr nenul reprezentabil (n modul): 1,17549435110
38
- cel mai mare numr reprezentabil (n modul): 3,40282346610
38
b) dubl precizie
- cel mai mic numr nenul reprezentabil (n modul): 2,225073858507201410
-308
- cel mai mare numr reprezentabil (n modul): 1,797693134862315810
308
O proprietate a reprezentrilor n virgul mobil de care trebuie inut cont este faptul c distana
dintre dou numere reprezentabile succesive nu mai este constant, ci depinde de valoarea
exponentului.
Dat fiind un numr oarecare, numrul reprezentabil imediat superior se obine adunnd la mantis
valoarea minim posibil, adic 00...001; n simpl precizie aceasta corespunde valorii 2
-23
, iar n
dubl precizie valorii 2
-51
.
Dac vom considera, de exemplu, reprezentarea n simpl precizie, observm c diferena ntre
cele dou numere succesive este E2
-23
, n timp ce pentru dubl precizie este E2
-51
.
Nu numai c nu putem reprezenta toate numerele iraionale din domeniu, dar i c, pentru valori
mari ale exponentului, exist chiar i numere ntregi care nu pot fi reprezentate exact. 24
Kilo, mega
Mult vreme informatica s-a singularizat prin utilizarea unor valori difeite fa de sistemul
internaional. Astfel muli informaticieni au nvat c 1 kilooctet (kilobyte) valora 1024 de
octei. Din decembrie 1998, organismul internaional IEC a deci asupra problemei.
(http://physics.nist.gov./cuu/Units/binary.html ).
Un kilooctet (ko sau kB) = 1000 octets (byi)
Un Megaoctet (Mo sau MB) = 1000 ko = 1 000 000 octei
Un Gigaoctet (Go sau GB) = 1000 Mo = 1 000 000 000 octei
Un Traoctet (To) = 1000 Go = 1 000 000 000 000 octei
Un kibioctet (kio sau kiB) valoreaz 2
10
= 1024 octei
Un Mebioctet (Mio sau MiB) valoreaz 2
20
=1 048 576 octei
Un Gibioctet (Gio sau GiB) valoreaz 2
30
=1 073 741 824 octei
Un Tbioctet (Tio ou TiB) valoreaz 2
40
=1 099 511 627 776 octei
25
Baza hexadecimal
Baza
decimale
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Baza
hexadecimale
0 1 2 3 4 5 6 7 8 9 A B C D E F
Baza binar 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Numerele binare fiind din ce n ce mai lungi, a fost necesar introducerea unei noi baze: baza
hexadecimal.
Aceast const n numrarea n baza 16, format din caracterele:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
26
Baza hexadecimal
2 A D 5
0010 1010 1101 0101

Numrul 27 (n baza 10) va fi n baza 16 : 1*16
1
+ 11*16
0
= 1*16
1
+ B*16
0
adic 1B.
Numrul FB3 (n baza 16) va fi n baza 10 : F*16
2
+ B*16
1
+ 3*16
0
= 3840 + 176 + 3 = 4019
Pentru a converti un octet n baza 16. l vom mpri n 2 grupe de 16 bii, ceea ce corespunde
fiecare unei cifre hexadecimale.
27

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