Sistemul binar (din latinescul binārĭus , „dublu”) este sistemul numeric care folosește baza 2 . Cifrele numărului binar de poziție sunt denumite în mod obișnuit bit (din cifra binară engleză sau „cifră binară”) . Un bit poate lua două valori, notate prin convenția 0 și 1 .
Sistemul binar este util pentru reprezentarea funcționării electronice digitale utilizate în computere . Prin urmare, este utilizat de limbaje de programare de nivel scăzut .
Cel mai obișnuit sistem binar este baza matematică doi , permițând reprezentarea numerelor folosind numerotarea în poziție cu doar două cifre: 0 și 1.
În acest tip de codificare, fiecare număr este reprezentat în mod unic printr-o succesiune ordonată de cifre . Și fiecare poziție m reprezintă o putere ( m - 1) a bazei . Dacă ne limităm inițial la numere întregi pozitive, în baza zece aceste puteri sunt: una (1), zece (reprezentată de 10), o sută (de zece ori zece, reprezentată de 100), o mie (de zece ori o sută, reprezentată de 1000), zece mii etc. În baza două, aceste puteri sunt: una (1), două (reprezentate și de 10), patru (de două ori două, reprezentate de 100), opt (de două ori patru, reprezentate de 1000), șaisprezece (de două ori opt, reprezentate până la 10000) etc.
Vedem că semnificația reprezentărilor 10, 100, 1000 etc. depinde de baza utilizată: 10 este întotdeauna egal cu baza, adică zece în baza zece, dar două în baza două.
În baza zece, se utilizează zece cifre, de la zero la nouă; în baza n , folosim n cifre, de la zero la n - 1; prin urmare, în baza a doua folosim cele două cifre „0” și „1”.
Un număr care este exprimat în baza B prin cele patru cifre 1101 poate fi analizat:
, care dă :
1101 în baza B = 10: | |||||
1101 în baza B = 8: | |||||
1101 în baza B = 2: |
Primele numere și cifre ale bazei 10 sunt scrise:
zecimal | binar | Observație |
---|---|---|
0 | 0 | zero |
1 | 1 | un = zero putere de bază (valabil pentru toate bazele, deci două și zece) |
2 | 10 | doi = doi la puterea unuia (un zero în spatele 1) |
3 | 11 | |
4 | 100 | patru = doi la puterea a doi (două zerouri în spatele 1) |
5 | 101 | |
6 | 110 | |
7 | 111 | |
8 | 1000 | opt = doi la puterea a trei (trei zerouri în spatele 1) |
9 | 1001 |
Oferim fiecărui bit o putere de doi, ca această secvență 1, 2, 4, 8, 16, 32, 64. Pentru a obține numărul 7, adăugăm primii trei biți; pentru a obține 6, adăugăm bitul cu o greutate de 4 și bitul cu o greutate de 2.
Tehnicile celor patru operații de bază (adunare, scădere, înmulțire și împărțire) rămân exact la fel ca în notația zecimală; acestea sunt doar simplificate drastic, deoarece există doar cele două cifre 0 și 1. Pentru multiplicare, de exemplu, oricare ar fi baza, înmulțirea cu 10 (adică de baza însăși) se face prin adăugarea unui zero la dreapta.
Singurele modificări care schimbă pe de o parte forma succesiunii de cifre care exprimă rezultatul (contează doar zerouri și una), pe de altă parte semnificația acestei secvențe (10 înseamnă „două” și nu „zece”, 100 înseamnă „patru” și nu „o sută” etc.).
Adunare si scadereTrecem de la un număr binar la următorul adăugând 1, ca în zecimal, fără a uita holdele și folosind tabelul obișnuit (dar redus la cea mai simplă expresie):
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 avec 1 retenue 0 - 0 = 0 0 - 1 = 1 avec 1 retenue 1 - 0 = 1 1 - 1 = 0Se poate observa că adăugarea a doi biți A și B dă A XOR B cu un transport egal cu A ȘI B.
Asa de :
11 + 1 ____ 100Detaliu:
1 + 1 = 10 => on pose 0 et on retient 1 1 + 1(retenue) = 10 => on pose 0 et on retient 1 0 + 1(retenue) = 1 => on pose 1 devant 00Înmulțirea cu două se face prin deplasarea fiecărei cifre cu un pas spre stânga și prin introducerea unui zero la sfârșit.
De exemplu, de două ori unsprezece:
Întreaga împărțire la două se face prin deplasarea fiecărei cifre cu un pas spre dreapta, cifra din dreapta fiind restul eliminat.
De exemplu unsprezece împărțit la doi:
Aritmetica binară (mai simplu calculul binar) este utilizată de cele mai comune sisteme electronice (calculatoare, computere etc.) deoarece cele două cifre 0 și 1 sunt reflectate acolo de tensiunea sau de trecerea unui curent. De exemplu, 0 poate fi reprezentat de starea joasă (zero tensiune sau curent) și 1 de starea înaltă (tensiune care există, curent care curge).
Pentru a completa reprezentarea numerelor întregi, este necesar să putem scrie numere întregi negative . Există două reprezentări, complementul unuia și complementul celor două.
Complement la aAceastă codificare constă în inversarea valorii fiecărui bit.
De exemplu pentru a obține −7:
Un defect al acestui sistem este că zero are două reprezentări: 0000 și 1111 („+0” și „−0”). Nu este folosit de computerele actuale, ci a fost folosit de computere mai vechi, cum ar fi Control Data 6600 . Cele două reprezentări ale zero complică circuitele de testare.
Complement pentru doiComplementul celor doi constă în realizarea complementului cuiva, apoi adăugarea 1.
De exemplu pentru a obține −7:
Această codificare are avantajul că nu necesită o diferențiere specială a numerelor pozitive și negative și evită în special problema dublei reprezentări a zero.
Iată o adăugare de −7 și +9 efectuată ca un complement de doi biți pe 4 biți:
-7 1001 +9 1001 __ ____ 2 (1) 0010 (on « ignore » la retenue)Cu n biți, acest sistem permite să reprezinte numerele cuprinse între −2 n −1 și 2 n −1 - 1.
Bazele 8 (octal) și 16 (hexazecimal) sunt baze de putere ale bazei 2. Aceste două baze sunt utilizate în mod obișnuit în prelucrarea datelor și din motive practice; aceste baze fiind puternic legate de baza 2 și numerele scrise în aceste baze fiind mai „manipulabile” (din cauza scrierii mai scurte) de către intelectul uman. Scrierea numerelor în aceste baze se realizează cu ușurință prin gruparea cifrelor de la scrierea numărului la baza 2.
Am putea extinde cu ușurință acest principiu la toate bazele care sunt puteri de 2.
La binareEste suficient să convertiți valoarea fiecărei cifre în forma lor binară folosind un număr de cifre corespunzător puterii bazei: 16 = 2 4 , 8 = 2 3 , deci 4 cifre pentru hexazecimal și 3 pentru octal:
|
|
Codul gri, numit și binar reflectat, permite schimbarea unui singur bit odată cu creșterea sau descreșterea unui număr cu unul. Numele codului provine de la inginerul american Frank Gray , care a depus un brevet asupra acestui cod în 1947.
Pentru a calcula direct codul gri al unui întreg de la cel al predecesorului său, putem proceda după cum urmează:
Pentru a reconcilia logica binară a computerului cu logica umană, se poate converti în binare, mai degrabă decât numerele în sine, fiecare dintre cifrele care le compun în notație pozițională zecimală. Fiecare dintre aceste cifre este apoi codată pe 4 biți:
1994 = 0001 1001 1001 0100 1×1000 + 9×100 + 9×10 + 4×1Cu n biți (n multiplu de 4), este posibil să se reprezinte numerele cuprinse între 0 și 10 n / 4 -1. Adică aproximativ între 0 și 1.778 n -1. DCB este un cod redundant, într-adevăr unele combinații nu sunt utilizate (cum ar fi 1111 de exemplu).
Această reprezentare evită prin construcție toate problemele dificile de acumulare a rotunjirii care ar apărea în timpul manipulării unui număr mare care depășește dimensiunea circuitelor în aritmetică întreagă și obligă să recurgă la plutitor. Cu toate acestea, este posibil să se manipuleze numerele cu precizie arbitrară utilizând o codificare mai eficientă decât DCB.
Există variante de codificare DCB:
În teoria informației , entropia unei surse de informații este exprimată în biți . Teoria însăși este indiferentă la reprezentarea mărimilor pe care le folosește.
Logica clasică este o logică bivalentă: o propoziție este fie adevărat sau fals. Prin urmare, este posibil să reprezentăm adevărul unei propoziții printr-un număr binar. De exemplu, putem modela operațiile aritmeticii binare folosind algebra booleană .
Algebra booleană reprezintă un caz foarte particular de utilizare a probabilităților care implică numai singurele valori de adevăr 0 și 1. Vezi teorema Cox-Jaynes .
Binarul este utilizat în procesarea datelor, deoarece face posibilă modelarea funcționării componentelor de comutare , cum ar fi TTL sau CMOS . Prezența unui prag de tensiune pe tranzistoare, neglijând valoarea exactă a acestei tensiuni, va reprezenta 0 sau 1. De exemplu, numărul 0 va fi utilizat pentru a semnifica o absență a tensiunii până la 0,5 V , iar numărul 1 pentru a indica prezență mai mare de 0,5 V . Această marjă de toleranță face posibilă împingerea ratelor microprocesoarelor la valori care ating mai mulți gigaherți .
În informatică , reprezentarea binară face posibilă manipularea clară a biților : fiecare cifră binară corespunde unui bit. Cu toate acestea, deoarece reprezentarea binară necesită utilizarea multor cifre (chiar și pentru numere destul de mici), aceasta duce la probleme semnificative de lizibilitate și, prin urmare, riscuri de erori de transcriere pentru programatori. Prin urmare, sunt preferate alte reprezentări : notația hexazecimală, care face posibilă manipularea informațiilor în pachete de 4 biți, este potrivită pentru aproape toate microprocesoarele actuale care funcționează cu cuvinte de 8, 16, 32 sau 64 de biți; mai rar, punctaj octal , timp popular al primelor minicomputere DEC la 12 sau 36 biți, care pot reprezenta informații în pachete de 3 biți.