Sistem binar
De la Wikipedia, enciclopedia liberă
| Sistem de numeraţie | |
|---|---|
| Sistem | Bază |
| Binar | 2 |
| Ternar | 3 |
| Cuaternar | 4 |
| Octal | 8 |
| Zecimal | 10 |
| Duodecimal | 12 |
| Hexazecimal | 16 |
| Vigesimal | 20 |
| Sexazecimal | 60 |
Un sistem binar este, în general vorbind, un sistem bazat pe 2 elemente, posibilităţi, aspecte, părţi, etape ş.a. Acest articol descrie sistemul de numeraţie binar, care foloseşte drept bază numărul 2. Pentru alte genuri de sisteme (care pot fi binare sau nu) vezi articolul Sistem.
Cuprins |
[modifică] Descriere generală
În sistemul (de numeraţie) binar există doar două cifre posibile, 0 şi 1. Conform definiţiei lui Claude Shannon, o cifră binară conţine cantitatea de informaţie de 1 bit. Sistemul binar este în acelaşi timp cel mai natural mod de stocare a informaţiei în calculatoare, deoarece 1 bit găzduieşte unitatea elementară de informaţie: valoarea bitului, 0 sau 1.
În orice sistem informatic, conform definiţiei lui Turing, este nevoie de o memorie fiabilă (sigură în funcţionare). Cea mai fiabilă metodă de prelucrare şi stocare a datelor se bazează pe sistemul binar: "celula este magnetizată sau nu este magnetizată", "trece curent sau nu trece curent", "cartela este perforată sau nu este perforată" etc. Cea mai apropiată alternativă ar fi fost utilizarea numeraţiei în baza 3, ceea ce ar fi necesitat elemente cu trei stări stabile, ducând la o logică trivalentă de genul "senzorul nu este excitat, senzorul este puţin excitat, senzorul este excitat", ceea ce, deşi induce un nivel mai bun de discernere a informaţiei, reduce, cel puţin în principiu, fiabilitatea potenţială a sistemului.
Datorită uşurinţei implementării sistemului binar în circuitele electronice, el se foloseşte practic la toate calculatoarele moderne.
[modifică] Istorie
Sistemul de numeraţie binar a început să fie folosit în mod implicit încă din cele mai vechi timpuri, odată cu apariţia logicii bivalente: odată definite noţiunile de "propoziţie adevărată" şi "propoziţie falsă", operaţiile care lucreează cu aceste noţiuni sunt operaţii de tip binar. Folosirea sistemului binar s-a răspândit însă cel mai mult abia recent, odată cu apariţia sistemelor informatice, începând de la cele mai rudimentare şi până la cele curente.
Prima descriere cunoscută a unui sistem de numeraţie binar a fost scrisă cândva între sec. VIII şi IV Î.Hr. de către matematicianul indian Pingala. Vezi online.
În China antică s-au folosit seturi complete de 8 trigrame şi 64 hexagrame, corespunzând cu numere cu câte 3 respectiv 6 cifre binare. Şi în Africa se cunosc diverse combinaţii binare antice.
În anul 1605 Francis Bacon şi-a imaginat un sistem de codificare a literelor alfabetului prin câte o secvenţă de cifre binare. El şi-a dat seama că, pentru codificare, se pot folosi nu numai cifrele binare, dar şi orice alte obiecte cu 2 stări, ca de exemplu clopote (bat sau nu bat), lumini, torţe ş.a.
Tot în sec. XVII matematicianul german Gottfried Leibniz a descris în articolul său Explication de l'Arithmétique Binaire sistemul binar în întregime, folosindu-se chiar de simbolurile moderne 0 şi 1.
În anul 1854 matematicianul şi filozoful englez George Boole a publicat o lucrare fundamentală care prezintă un sistem logic denumit mai târziu algebra Booleană. Acest sistem s-a dovedit esenţial pentru dezvoltarea sistemului binar şi implementarea sa în circuitele electronice de mai târziu.
În 1937, Claude Shannon, un inginer şi matematician american, a pus bazele teoriei informaţiei precum şi cele ale proiectării circuitelor electronice digitale.
[modifică] Reprezentarea numerelor în sistemul binar
În texte care conţin numere în mai multe sisteme de numeraţie, pentru a evita ambiguităţile, după numărul în cauză se adaugă ca subindice şi baza sistemului de numeraţie în paranteze. De exemplu numărul zecimal (obişnuit) 100 se notează 100(10) (în baza zece), spre a-l deosebi de 100(2) (în baza doi), care are valoarea unui 4 obişnuit (în baza zece).
Numerele binare sunt alcătuite din secvenţe de cifre binare ("biţi"), care la rândul lor reprezintă orice entităţi care au numai 2 stări stabile diferite. De exemplu, numărul zecimal 667(10) poate fi reprezentat în binar prin următoarele şiruri binare:
- cifre binare; afirmaţie adevărată (1) sau falsă (0): 1 0 1 0 0 1 1 0 1 1 - polarizarea unor magneţi, verticală sau orizontală: | - | - - | | - | | - tensiune electrică prezentă sau absentă: p a p a a p p a p p - da sau nu: N D N D D N N D N N
Nu este însă necesar ca cifra binară 1 să fie interpretată întotdeauna drept tensiune prezentă iar 0 drept tensiune absentă; la fel de bine poate funcţiona şi convenţia contrară. Ultimul rând din tabela de mai sus este un exemplu în acest sens, unde D-urile echivalează cu 0, iar N-urile cu 1.
Cea mai obişnuită reprezentare numerică a cifrelor binare este cea care corespunde cu sistemul cifrelor zecimale, în aşa fel încât: "0"(2) corespunde lui 0(10), şi "1"(2) corespunde lui 1(10).
Când se citesc numerele binare, cifrele lor se rostesc una câte una. Ca exemplu, numărul 100(2), care are valoarea zecimală 4, nu se citeşte "o sută", ci "unu-zero-zero" sau "unu-zero-zero în baza 2".
Valoarea numărului binar 1010011011(2) de mai sus se calculează în zecimal în felul următor (de la dreapta spre stânga):
20 + 21 + 23 + 24 + 27 + 29 = 1 + 2 + 8 + 16 + 128 + 512 = 667(10).
Pe lângă numerele pozitive şi numerele negative pot fi reprezentate în binar. Aceasta se face prin adăugarea unei poziţii suplimentare la extrema stângă (cea mai semnificativă) a numărului binar. De asemenea şi numerele reale fracţionare (cu zecimale) pot fi reprezentate în sistemul binar, şi anume folosind o virgulă între partea întreagă şi cea fracţionară.
[modifică] Numărarea în sistemul binar
| Binar | Zecimal |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 10 | 2 |
| 11 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | 10 |
Numărarea în sistemul binar este în bună măsură asemănătoare cu cea din sistemul zecimal obişnuit. Diferenţa constă în faptul că în binar stau la dispoziţie doar două cifre anume 0 şi 1, în timp ce în sistemul zecimal există zece cifre, cele de la 0 la 9. Regulile pentru toate sistemele, deci şi pentru cel binar, sunt următoarele două:
- Numărarea începe cu o singură poziţie, care porneşte ca valoare (sau conţinut) de la cifra 0 şi continuă crescător până la cea mai mare cifră din sistem. Această poziţie, cea mai din dreapta a numărului, poartă numele de "poziţia (cifra) cea mai puţin semnificativă".
- După ce o poziţie curentă ajunge la cifra maximă, poziţia curentă "sare" înapoi la 0, iar poziţia din stânga ei trebuie incrementată cu o unitate. Această situaţie se numeşte "depăşire". (Dacă cumva poziţia din stânga încă nu există, ea se creează şi i se dă mai întâi valoarea 1.) Prin acest procedeu este posibil ca şi poziţia din stânga să prezinte o depăşire. În acest caz se aplică chiar această regulă din nou, altfel spus, în mod recursiv, din ce în ce mai spre stânga, până se întâlneşte un 0, care, fără depăşire, devine un 1.
Pentru numărarea în binar aceasta înseamnă că, după ce o poziţie a devenit 1, ea se repune la 0, iar la poziţia din stânga ei trebuie adăugat un 1. Rezultatul arată astfel: 0, 1, 10, 11, 100, 101, 110, 111, 1000 ş.a.m.d.
[modifică] Aritmetica numerelor binare
Operaţiile aritmetice binare elementare (adunarea, scăderea, înmulţirea şi împărţirea) se aseamănă în bună măsură cu cele obişnuite, zecimale.
[modifică] Adunarea în binar
Tabla adunării a două cifre binare este următoarea:
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 (cu "depăşire")
Ultimul rând de mai sus se citeşte: "Unu plus unu este egal cu unu-zero (în baza 2)", valoarea lui 10(2) fiind desigur 2(10).
Pe baza tablei de mai sus se pot aduna oricare 2 numere binare A şi B. Exemplu (se începe de la dreapta):
1 1 1 - 1 <== transporturi, rezultate din depăşirea de pe poziţia anterioară)
A 1 1 0 1 <== valoarea lui A este 13(10) (1 + 4 + 8)
+B 1 0 1 0 1 <== valoarea lui B este 21(10) (1 + 4 + 16)
----------------
=S 1 0 0 0 1 0 <== valoarea sumei este 34(10) (2 + 32).
[modifică] Scăderea
Scăderea în sistemul binar funcţionează foarte asemănător cu adunarea binară. Tabla scăderii este:
0 - 0 = 0 0 - 1 = 1 (cu "împrumut") 1 - 0 = 1 1 - 1 = 0
Pe această bază se pot scădea numere binare formate din mai multe 0-uri şi 1-uri. Operaţia se execută poziţie cu poziţie, de la dreapta la stânga. La nevoie se foloseşte "împrumutul" de la poziţia de mai la stânga. De exemplu:
* * * <== coloanele marcate cu steluţe se folosesc pentru împrumut
A 1 1 0 0 1 0 1 <== A are valoarea zecimală 1 + 4 + 32 + 64 = 101(10)
−B 1 1 0 1 1 <== B are valoarea zecimală 1 + 2 + 8 + 16 = 27(10)
------------------
=D 1 0 0 1 0 1 0 <== diferenţa lor este D = 2 + 8 + 64 = 74(10)
Scăderea unui număr binar produce acelaşi rezultat cu adăugarea aceluiaş număr dar cu semn schimbat. La calculatoare, pentru a schimba semnul unui număr, se foloseşte complementul faţă de 2, o operaţie binară logică elementară. Aceasta elimină necesitatea de a mai realiza, pe lângă circuitele de adunare, şi pe cele de scădere. Altfel spus, scăderea se realizează prin următoarele două adunări:
A - B = A + not B + 1
[modifică] Înmulţirea
Înmulţirea (multiplicarea) în binar se bazează, la fel ca şi în sistemul zecimal, pe adunare. Tabla înmulţirii binare este simplă:
0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1
Pentru a multiplica numerele binare A şi B se fac întâi produsele parţiale ale lui A cu fiecare cifră binară a lui B, luate de la dreapta la stânga, şi apoi se adună rezultatele parţiale între ele. Produsele parţiale ale fiecărei cifre din B cu A sunt şi ele simple:
- Dacă cifra din B este un 0, atunci şi produsul parţial este 0, şi nu are efect asupra adunării;
- Dacă cifra din B este un 1, atunci produsul parţial al lui A cu 1 este chiar A.
Exemplu 1010(2) x 11011(2):
1 1 0 1 1 <== A este egal cu 1 + 2 + 8 + 16 = 27(10)
× 1 0 1 0 <== B este egal cu 2 + 8 = 10(10)
---------
0 0 0 0 0
+ 1 1 0 1 1
+ 0 0 0 0 0
+ 1 1 0 1 1
-----------------
1 0 0 0 0 1 1 1 0 <== Produsul A x B = 2 + 4 + 8 + 256 = 270(10)
* * * * <== depăşire (la adunare)
[modifică] Împărţirea
Şi împărţirea binară se aseamănă în bună parte cu cea obişnuită, zecimală. Când numărul A trebuie împărţit la numărul B, A se mai numeşte "deîmpărţit", iar B "împărţitor". În general se deosebesc 2 feluri de împărţiri:
- cea exactă, la care interesează şi se calculează şi cifrele de după virgulă,
- şi cea cu rest, când împărţitorul B nu intră exact în deîmpărţitul A; calculele se opresc acolo unde ar urma virgula, dar din deîmpărţit rămâne un rest, care trebuie specificat.
Exemplu de împărţire binară cu rest: 1100111(2) / 101(2) (sau în zecimal, 103 / 5 = 20 rest 3). Se procedează de la stânga la dreapta:
1 1 0 0 1 1 1 / 1 0 1 = 1 0 1 0 0 (= 20(10)). Restul se află pe penultima linie, şi anume 0 1 1 (= 3(10)).
- 1 0 1 <== încape şi executăm scăderea; trecem un 1 la rezultat;
= 0 0 1.0 <== "coborâm" o cifră din deîmpărţit;
- 1 0 1 <== nu încape; trecem un 0 la rezultat;
0 0 1.0.1 <== mai "coborâm" încă o cifră;
- 1 0 1 <== încercăm să scădem încă o dată, cu o poziţie mai la dreapta;
= 0 0 0.1 <== acum încape exact; trecem un 1 la rezultat, şi "coborâm" cifra următoare;
- 1 0 1 <== nu încape; trecem un 0 la rezultat;
0 0 0.1.1 <== mai "coborâm" o cifră; acesta este restul, deoarece ...
- 1 0 1 <== ... când încercăm încă o dată, nu încape nici acum; trecem încă un 0 la rezultat;
acuma însă nu mai există nici cifre de coborât.
Împărţirea binară constă într-un şiri de scăderi. De fiecare dată când împărţitorul nu încape în acelaşi număr de cifre ale deîmpărţitului (cu alte cuvinte este mai mic), se mai "coboară" următoarea cifră spre dreapta din deîmpărţit.
[modifică] Operaţii binare logice
Cu numerele binare se pot executa şi operaţii logice sau "booleene" (numite aşa după matematicianul şi filozoful englez George Boole); acestea nu pun accentul pe valoarea aritmetică a numărului binar în cauză, ci pe manipularea numerelor şi cifrelor binare conform legilor adevărului şi falsului. Vezi articolul Logică binară.
[modifică] Sisteme de numărare înrudite
[modifică] Sistemul hexazecimal
Sistemul hexazecimal are baza 16 şi utilizează 16 cifre hexazecimale, care se notează astfel: 0 1 2 3 4 5 6 7 8 9 A B C D E F.
În acest şir de cifre hexazecimale,
- cifrele de la 0(16) la 9(16) au valorile zecimale echivalente, de la 0(10) la 9(10),
- iar cifrele A(16) ... F(16) au valorile zecimale de la 10(10) la 15(10).
Pentru reprezentarea valorilor zecimale de la 0 la 15 sunt necesari exact 4 biţi, începînd cu 0000 şi sfârşind cu 1111. Transformarea unui număr binar într-unul hexazecimal se face pur şi simplu prin gruparea biţilor în grupe de câte 4 biţi, de la dreapta la stînga. Exemplu:
110110110111001(2) = (0)110 1101 1011 1001 = 6DB9(16).
Transformarea inversă, din hex în bin, se face prin înlocuirea fiecărei cifre hex prin combinaţia corepunzătoare de 4 biţi.
Pentru cei ce sunt familiarizaţi cu el, sistemul hexazecimal este o metodă comodă pentru afişarea conţinutului binar al memoriei sau fişierelor din calculatoarele actuale, deoarece numerele binare sunt în general foarte lungi, în schimb numerele hexazecimale sunt mai scurte chiar decât cele zecimale. Vezi şi articolul Sistem hexazecimal.
[modifică] Sistemul octal
Sistemul octal are baza 8 şi utilizează 8 cifre octale, notate de la 0 la 7, care sunt identice ca valoare cu cifrele zecimale de la 0 la 7. Pentru reprezentarea valorilor octale sau zecimale de la 0 la 7 sunt necesari exact 3 biţi, începând cu 000 şi terminând cu 111. Transformarea unui număr binar într-unul octal se face pur şi simplu prin gruparea biţilor în grupe de câte 3 biţi, de la dreapta la stînga. Exemplu:
110110110111001(2) = 110 110 110 111 001 = 66671(8).
Transformarea inversă, din octal în binar, se face prin înlocuirea fiecărei cifre octale prin combinaţia corepunzătoare de 3 biţi.
Sistemul octal nu mai este întrebuinţat în zilele noastre aproape de loc.
[modifică] Conversia numerelor binare
Pentru conversia numerelor dintr-o bază în alta în general - vezi articolul Bază de numeraţie.
[modifică] Conversia din zecimal în binar
Mai întâi se împarte numărul ales la 2; restul reprezintă cifra cea mai puţin semnificativă (cea mai din dreapta) a rezultatului conversiei. Câtul se reîmparte la 2, se notează restul, şi procedura se repetă cu noul cât (recursiv). Operaţia se sfârşeşte când câtul devine nul.
Pentru examplificare: conversia numărului 118(10) în binar:
-
Operaţie=Cât Rest 118 ÷ 2 = 59 0 59 ÷ 2 = 29 1 29 ÷ 2 = 14 1 14 ÷ 2 = 7 0 7 ÷ 2 = 3 1 3 ÷ 2 = 1 1 1 ÷ 2 = 0 1
Citind resturile de jos în sus, rezultatul final al conversiei este numărul binar 1110110(2).
Această metodă se poate aplica şi la conversiunea în alte baze.
[modifică] Conversia din binar în zecimal
Ca exemplu folosim din nou numărul 1110110(2), pe care îl convertim înapoi în baza 10. Se adună puterile lui 2, înmulţite cu cifra binară respectivă. Puterile la care trebuie ridicat 2 încep cu n-1, unde n este numărul de cifre binare, şi devin din ce în ce mai mici, de la stânga la dreapta:
Binar: 1 1 1 0 1 1 0 Zecimal: 26×1 + 25×1 + 24×1 + 23×0 + 22×1 + 21×1 + 20×0 = 118
Pentru eficienţa conversiei, calculul practic se face cu o schemă Horner:
Zecimal: (((((1 ×2 + 1)×2 + 1)×2 + 0)×2 + 1)×2 + 1)×2 + 0 = 118
[modifică] Vezi şi
- Sistem: genuri de sisteme, în general
- Bază de numeraţie
- Complement faţă de doi
- Logică binară
- Sistem hexazecimal
[modifică] Legături externe
- Calculator mecanic pentru adunare binară pe 6 biţi (Videoclip în l. engleză)

