Informatica şi sistemul binar

marți, octombrie 4, 2011 21:54
Posted in category IT

Sistemul binarMaterialul de faţă a apărut dintr-o problema în care cineva se întreba dacă informatica poate renunţa la sistemul binar pentru a trece la un alt nivel. Înainte de a vedea opiniile celor care mai ştiu anumite aspecte ale problemei, o scurtă introducere în bazele de numeraţie.

Prin clasa a V-a se studiază (opţional) despre sistemele de numeraţie. Astfel, deoarece, în mod uzual, noi folosim zece cifre (de la 0 la 9) pentru a scrie numere, spunem că folosim baza zece sau sistemul de numeraţie zecimal (zece unităţi de un anumit ordin formează o unitate de ordin imediat superior).

Dar se poate lucra şi în alte baze de numeraţie, în baza 3, de exemplu, se folosesc cifrele 0, 1 şi 2 (cifre mai mici decât baza). Informatica foloseşte baza 2 (sistemul binar), adică sunt folosite doar cifrele 0 şi 1 (fiecare din ele numita si bit).

Se poate trece de la o bază de numeraţie la alta. De exemplu, pentru a trece numărul 19 din baza 10 în baza 2 se efectuează următoarele calcule: 19 : 2 = 9, rest 1 (se reţine restul); 9 : 2 = 4, rest 1 (se reţine restul); 4 : 2 = 2, rest 0 (se reţine restul); 2 : 2 = 1, rest 0 (se reţine restul şi câtul). Acum se iau cifrele 1 (ultimul cât), 0 (ultimul rest), 0 (penultimul rest), plus toate celelalte resturi şi avem scrierea numărului 19 în baza 2: 19 = 10011(2). Reciproc, dacă avem un număr în sistemul binar îl putem trece în sistemul zecimal. De exemplu, pentru a trece numărul 111001(2) din baza 2 în baza 10 efectuăm următorul calcul 111001(2) = 1×25 + 1×24 + 1×23 + 0x22 + 0x21 + 1×20. Primul exponent al lui 2 (cel mai mare) este cu 1 mai mic decât numărul cifrelor numărului scris în baza 2, apoi ceilalţi exponenţi descresc până la 0 (20 = 1 se poate omite).

Acum să revenim la întrebarea de la link-ul de mai sus. Aceasta suna cam aşa: Computerele folosesc sistemul binar din 0 si 1. S-ar putea crea computere care sa foloseasca un sistem mai complex, format de exemplu din 0, 1 si 2. Ar fi util? Iată, mai jos, cele mai interesante răspunsuri.

  • (1) Nu, nu este necesar. Funcționarea procesorului (CPU), mai exact a părtii sale ce se ocupă de operații aritmetice și logice (numită ALU), are la bază algebra booleană. Această algebră are următoarele proprietăți: – elementele {0,1} (deseori se asociază lui 0 fals și lui 1 adevărat); – 2 operații binare numite SAU și ȘI + o operatie unară numită NU (negație). Practic aceste operații stau la baza informaticii. Totul este redus la adevarat si fals (0 si 1) intr-un circuit, toate calculele, toate operatiunile sunt astfel “gândite” de calculator. În 1930 Claude Shannon a facut legatura dintre un curcuit simplu, static, si algebra booleana. Nu vreau să intru prea mult în istorie, dacă vrei uite aici informații suplimentare: https://ro.wikipedia.org/wiki/Claude_Shannon. Revenind la intrebarea ta, dacă totul se poate reduce la adevărat și fals (adică 0 si 1) nu văd de ce ar mai fi necesar și ce ar reprezenta acel 2. Uite cum se pune în practică ideea de algebra booleana (cel mai simplu circuit care reprezintă operatorul SAU): https://en.wikipedia.org/wiki/Diode_logic. Dacă vrei sa citești mai multe despre ALU: https://en.wikipedia.org/wiki/Arithmetic_logic_unit.
  • (2) Pentru calculatoare digitale e suficienta algebra booleana. Regulile algebrei sunt la fel de complexe oricare ar fi baza folosita si oricum exista o echivalenta. Orice numar permite o reprezentare in baza 2 (adica cu cifrele 1 si 0) si avantajele sunt mari pe partea inginereasca: ca sa detectezi cele 2 valori posibile iti trebuie un circuit mai simplu decat sa detectezi cele 3,4,5 sau mai multe valori posibile in cazul folosirii unui sistem mai complex. Plus ca esti mai imun la zgomote si perturbatii. Calculatoarele analogice sunt o alta problema. Ar permite abordarea unor clase complet diferite de probleme dar ele folosesc algebra numerelor reale asa ca e ca si cum ai compara mere cu pere. Oricum se va ajunge si la ele pana la urma si zic asta pentru ca exemplul de „calculator” foarte complex pe care il avem de la natura, si anume creierul, este pur analogic. Ca sa lamuresc niste probleme: – Numerele intregi se pot prelucra foarte bine in sistemul binar. Pentru numere mai complexe e nevoie de mai multa memorie si atata tot. – Ca sa reprezinti DA/NU/POATE pe calculatoarele actuale ai nevoie de 2 biti si nu doar de 1. – Numerele reale (de exemplu cele intre 0 si 1 inclusiv cele care nu sunt fractii) nu au reprezentare finita in nici un sistem indiferent de baza. Adica pentru PI ai nevoie de o aproximatie pentru ca altfel iti trebuie un infinit de RAM. – Operatiile matematice uzuale pot trece de la numere cu reprezentare finita la numere cu reprezentare infinita si invers. In algoritmi asta induce erori subtile care sunt foarte greu de corectat. – Calculatoarele analogice ar rezolva o parte din problemele cu numere reale dar ar introduce altele si sunt greu de fabricat cu tehnologia actuala.
  • (3) Citind intamplator sau nu, cine stie, despre neutrosofie am facut o legatura cu intrebarea daca s-ar putea crea computere care sa foloseasca un sistem mai complex, format de exemplu din 0, 1 si 2 si utilitatea acestui fapt. Avand in vedere faptul ca totusi exista si acest segment al neutrului in existenta noastra va las aici o legatura cu privire la neutrosofie, disciplina inventata de catre Florentin Smarandache in anul 1995, un alt roman genial despre care stim prea putin. https://ro.wikipedia.org/wiki/Neutrosofie
  • (4) Sistemul binar de reprezentare format din 0 si 1 pe langa faptul ca este larg raspandit, de fapt are o cu totul alta explicatie pentru care s-a adoptat in domeniul IT. Ma refer aici la faptul ca la inceputurile calculatoarelor, cand nu exista notiunea de procesor si nici chiar dispozitivele semiconductoare (diode, tranzistoare) nu aparusera, se utilizau tuburi electronice, rezistente, condensatori, relee, etc iar o operatie destul de simpla insemna un timp relativ mare, realizarea acesteia consta in trecerea in diferite pozitii ale anumitor relee (releu ON = prezenta tensiune, releu OFF = lipsa tensiune). Pentru a usura descrierea starilor in care trebuiau sa se afle aceste relee s-a stabilit prin conventie ca pentru ON sa fie atribuit „0” iar pentru OFF sa fie „1”. In acest fel a luat nastere sistemul de reprezentare binar. Ulterior, odata cu aparitia diodelor si tranzistoarelor s-au inlocuit releele iar conventia s-a transformat in „Prezenta tensiune” = 1, „Lipsa tensiune” = 0. Microprocesoarele din ziua de azi nu sunt decat uriase circuite care sunt pur si simplu implementate pe o pastila semiconductoare. Viteza procesorului este data de complexitatea circuitului si cate zeci de operatii elementare cu 0 si 1 poate realiza intr-o secunda. Prin urmare un sistem de reprezentare diferit de sistemul binar nu ar avea cum sa poata fi utilizat cu succes intr-un calculator, deoarece nu ar putea descrie cu precizie starea unei compenente din cadrul imensului circuit miniaturizat reprezentat de microprocesor.

Citeste si articolele:

Sigla A7
Dacă ţi-a plăcut articolul, ai ceva de completat sau ai ceva de reproşat (civilizat) la acest text, scrie un comentariu, ori pune un link pe site-ul (blogul) tău, în cazul în care vrei ca şi alţii să citească textul sau (obligatoriu) dacă ai copiat articolul parţial sau integral. După ce ai scris comentariul, acesta trebuie aprobat de administratorul site-ului, apoi va fi publicat.

2 Responses to “Informatica şi sistemul binar”

  1. Unde căutăm cărţi în format electronic (e-books) | A șaptea dimensiune says:

    august 13th, 2016 at 19:33

    […] Informatica şi sistemul binar […]

  2. Un player care caută automat subtitrările | A șaptea dimensiune says:

    august 14th, 2016 at 14:40

    […] Informatica şi sistemul binar […]

Adauga un comentariu