Codificare binară

Un singur semnal digital nu este foarte informativ, deoarece poate lua doar două valori: zero și una. Prin urmare, în cazurile în care este necesară transmiterea, procesarea sau stocarea unor cantități mari de informații, se folosesc de obicei câteva semnale digitale paralele. În acest caz, toate aceste semnale ar trebui să fie luate în considerare numai simultan, fiecare dintre ele separat nu are sens. În astfel de cazuri, se vorbește de coduri binare, adică de coduri formate prin semnale digitale (logice, binare). Fiecare dintre semnalele logice incluse în cod se numește un bit. Cu cât mai mulți biți sunt incluși în cod, cu atât mai multe valori pot lua acest cod.

Spre deosebire de codificarea zecimală a numerelor obișnuite pentru noi, adică un cod cu o bază de zece, codificarea binară în partea de jos a codului este numărul doi (Figura 2.9). Adică, fiecare cifră a codului (fiecare cifră) a codului binar nu poate lua zece valori (ca în codul zecimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 1. Sistemul de înregistrare pozițională rămâne același, adică cea mai mică cifră este scrisă în dreapta, iar cea mai veche este scrisă în stânga. Dar dacă în sistemul zecimal greutatea fiecărei cifre este de zece ori mai mare decât greutatea anterioară, apoi în sistemul binar (cu codare binară) - de două ori. Fiecare bit al codului binar este numit un pic (de la limba engleză "Binary Digit" - "număr binar").


Fig. 2.9. Decimal și codare binară

În tabel. 2.3 arată corespondența dintre primele douăzeci de numere din sistemele zecimale și binare.

Se poate observa din tabel că numărul necesar de cifre ale codului binar este mult mai mare decât numărul necesar de biți din codul zecimal. Numărul maxim posibil cu un număr de cifre egal cu trei este de 999 pentru un sistem zecimal, iar pentru un binar numai 7 (adică 111 în cod binar). În general, un număr binar n-bit poate lua 2 n valori diferite, iar un număr zecimal n-bit - 10 n valori. Adică, scrierea de numere binare mari (cu mai mult de zece cifre) nu este foarte convenabilă.

Tabelul 2.3. Corespondența numerelor în sistemele zecimale și binare

Pentru a simplifica înregistrarea numerelor binare, a fost propus așa-numitul sistem hexazecimal (codificare hexazecimală). În acest caz, toate cifrele binare sunt împărțite în grupuri de patru categorii (începând cu cea minoră) și apoi fiecare grup este codificat cu un singur caracter. Fiecare astfel de grup este numit un bâzâit (sau șuvoacă, tetrad) și două grupuri (8 biți) octet. Din tabel. 2.3 se poate observa că un număr binar pe 4 biți poate lua 16 valori diferite (de la 0 la 15). Prin urmare, numărul necesar de caractere pentru codul hexazecimal este de asemenea 16, deci numele codului. Primele 10 caractere sunt cifre de la 0 la 9, iar apoi 6 litere initiale ale alfabetului latin sunt folosite: A, B, C, D, E, F.


Fig. 2.10. Notarea binară și hexazecimală a unui număr

În tabel. Sunt date exemple de codificare în 16 cifre a primelor 20 de numere (în paranteze sunt date numerele binare), iar în Fig. 2.10 arată un exemplu de scriere a unui număr binar în hexazecimal. Pentru a indica codificarea hexazecimală, uneori se folosește litera "h" sau "H" (de la limba engleză hexadecimal) la sfârșitul numărului, de exemplu, intrarea A17F h indică numărul hexazecimal A17F. Aici, A1 este octetul mare al numărului și 7F este octetul cel mai puțin semnificativ al numărului. Numărul întreg (în cazul nostru, unul dublu-octet) este numit un cuvânt.

Tabelul 2.4. Sistem de codificare pe 16 biți

Pentru a converti un număr hexazecimal la unul zecimal, înmulțiți valoarea celei mai scăzute cifre (zero) cu una, valoarea următoarei (prima) cifră cu 16, a doua cifră cu 256 (162) și așa mai departe. și apoi adăugați toate lucrările. De exemplu, luați numărul A17F:

A17F = F * 16 0 + 7 * 16 1 + 1 * 16 2 + A * 16 3 = 15 * 1 + 7 * 16 + 1 * 256 + 10 * 4096 = 41343

Tabelul 2.5. Sistem de codificare din 8 cifre

Dar fiecare expert în echipamente digitale (dezvoltator, operatorul, depanator, programator, etc.), trebuie să învețe ca liber se ocupe de 16-Ary și sisteme binare, precum și cu zecimale obișnuite pentru orice transfer de la un sistem la altul, nu este necesar.

În mod semnificativ mai puțin decât codificarea hexazecimală, octală, care este construită pe același principiu ca și hexazecimal, cifrele binare sunt împărțite în grupuri de câte trei categorii. Fiecare grup (bit cod) este apoi marcat cu un simbol. Fiecare cifră a codului din 8 cifre poate lua opt valori: 0, 1, 2, 3, 4, 5, 6, 7 (Tabelul 2.5).

În plus față de codurile considerate, există și o așa-numită reprezentare binară-zecimal a numerelor. Ca și în codul 16-ary, cod BCD, fiecare cod de categorie corespunde patru biți binare, dar fiecare grup de patru biți pot primi nu șaisprezece, ci doar zece valori codificate simboluri 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Asta înseamnă că o zecimală corespunde celor patru binare. Ca rezultat, scrierea numerelor în codul binar nu diferă de scrierea în codul zecimal obișnuit (tabelul 2.6), dar în realitate acesta este doar un cod binar special, fiecare bit din care poate lua doar două valori: 0 și 1. Codul zecimal binar este uneori foarte convenabil pentru organizarea indicatorilor digitali zecimali și a tablourilor de bord.

Tabelul 2.6. Sistem de codare binar-zecimal

În codul binar peste numere, puteți efectua orice operațiuni aritmetice: adăugare, scădere, înmulțire, divizare.

Luați în considerare, de exemplu, adăugarea a două numere binare pe 4 biți. Adăugați numărul 0111 (zecimal 7) și 1011 (zecimal 11). Adăugarea acestor numere nu este mai complicată decât în ​​reprezentarea zecimală:

Atunci când se adaugă 0 și 0, vom primi 0, 1 și 0 vom adăuga 1, vom adăuga 1 și 1 la 0 și vom muta la următoarea cifră 1. Rezultatul este 10010 (zecimal 18). Când adăugați oricare două numere binare n-biți, puteți obține un număr n-bit sau (n + 1) -digit.

În mod similar, se efectuează scăderea. Să presupunem că numărul 0111 (7) trebuie să fie scăzut de la numărul 10010 (18). Se scriu numerele cu alinierea de ordin inferior și se scade exact la fel ca în cazul sistemului zecimal:

Atunci când scăzând de la 0 0 0 obținem, scăzând 0 din 1 randamentele 1, scăzând 1 din 1 randamentele 0 scăzând 1 din 0 și 1 get împrumut 1 următoarea descărcare de gestiune. Rezultatul este 1011 (zecimal 11).

Când se scade, este posibil să se obțină numere negative, deci trebuie să utilizați o reprezentare binară a numerelor negative.

Pentru reprezentarea simultană atât a numerelor binare pozitive, cât și a celor binare negative, este cel mai adesea folosit așa-numitul cod suplimentar. Numerele negative din acest cod sunt exprimate printr-un număr care, combinat cu un număr pozitiv de aceeași valoare, va duce la zero. Pentru a obține un număr negativ, trebuie să modificați toți biții aceluiași număr pozitiv la cele opuse (0 la 1, 1 la 0) și să adăugați la rezultatul 1. De exemplu, notați numărul -5. Numărul 5 în cod binar arată 0101. Înlocuiți biți inversat: 1010 și adăugați unitatea: 1011. Rezumând rezultatele din numărul inițial: 1011 + 0101 = 0000 (descărcarea de transfer a cincea Ignorare).

Numerele negative din codul suplimentar diferă de cele pozitive de valoarea celei mai mari cifre: unitatea din cea mai înaltă cifră determină un număr negativ, iar zero - un număr pozitiv.

In afara este folosit operații aritmetice standard în sistem binar, iar unele operațiuni specifice, cum ar fi adăugarea modulo 2. Această operație (notată A) este un bitwise, adică nici un transfer de la un MSBs cifre și împrumut nu există aici. Regulile adiționale pentru modulo 2 sunt următoarele :. . . Aceeași operație se numește funcția OR exclusivă. De exemplu, am sum modulo 2 două numere binare 0111 și 1011:

Printre alte operații bitwise pe numere binare, se poate observa funcția AND și funcția OR. Funcția AND are ca rezultat o unitate numai atunci când biții corespunzători din cele două numere inițiale au ambele, altfel rezultatul este -0. Funcția OR are ca rezultat o unitate atunci când cel puțin unul dintre biții corespunzători ai numerelor inițiale este 1, altfel rezultatul este 0.

Articole similare