„Sunt numai 1s și 0s.” Oamenii spun acest lucru atunci când fac o glumă sau o remarcă sarcastică. Când vine vorba de gândirea calculatoarelor, este chiar adevărat. Iar la nivel de hardware, asta este tot ce există. Procesorul, memoria, diferitele forme de stocare, conexiunile USB, HDMI și de rețea, împreună cu tot ceea ce se află în acel telefon mobil, tabletă, laptop sau desktop utilizează doar 1 și 0. Octeții asigură gruparea cifrelor 1 și 0. Așadar, sunt de mare ajutor pentru a le păstra organizate. Să ne uităm la modul în care fac acest lucru.
Bytes sunt unitatea de măsură pentru datele și programele stocate și utilizate în computerul dumneavoastră. Deși octetul a existat de mult timp în istoria calculatoarelor și a luat mai multe forme, lungimea sa actuală de 8 biți este bine stabilită. Luați fie individual, fie sub formă de grupuri adiacente, octeții sunt cel mai comun mod general acceptat în care sunt organizați biții dintr-un calculator.
Atunci ce este un bit? Un bit este o cifră binară; adică poate avea doar două valori. În calculatoare, cele două valori pe care le poate avea un bit sunt zero (0) și unu (1). Asta este tot, nu există alte opțiuni. Un octet este doar opt biți binari care sunt luați împreună pentru a reprezenta numere binare. Prin diverse scheme de codificare, numerele pot reprezenta o mare varietate de alte lucruri, cum ar fi caracterele cu care scriem.
Tabelul de mai jos prezintă un singur octet Big-Endian, arătând biții individuali ai acestui octet și puterile de doi asociate acestora. Toți octeții de date sunt în format Big-Endian. Există și alți octeți, cum ar fi codul de program, unde formatarea Endian nu se aplică. Valorile zecimale ale fiecărei puteri de doi sunt afișate cu fiecare bit pentru referință. Imaginați-vă o linie între bitul 3 și bitul 4, unde byte-ul este subîmpărțit în patru grupuri de biți numite Nibbles. Little-Endian este un format de byte foarte frecvent utilizat. Rămâneți pe recepție pentru mai multe informații despre Endians. Dacă sunteți curioși în legătură cu acest nume, faceți o căutare pe (etimologia lui endian).
Un octet Big-Endian:
Bit0 | Bit1 | Bit2 | Bit3 | Bit4 | Bit5 | Bit6 | Bit7 | ||
Putere de 2 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 21 | |
Valoare zecimală | 128 | 64 | 32 | 16 | 8 | 8 | 4 | 2 | 1 |
Care nibble al unui octet poate conține un număr binar de patru biți, așa cum se arată în tabelul următor. Dacă un bit este setat la „1”, acea putere de doi se adaugă la valoarea nibble-ului. În cazul în care un bit este setat la „0”, această putere de doi nu se adaugă la valoarea nibble-ului. Un octet format din două picături poate conține un număr hexazecimal de două cifre. Bitii sunt, de fapt, tot ceea ce poate utiliza un computer. Programatorii și inginerii care dezvoltă hardware pentru calculatoare folosesc hexadecimalul pentru a ușura manipularea biților. În tabelul de mai jos, bitul cel mai semnificativ se află în stânga 20, 21, 22, 22, 23
One Big-Endian Nibble:
Număr binar Număr |
Valoare hexazecimal Valoare |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
Voi explica Big…Endian începând cu o diagramă pe un octet. Liniile mai lungi de la capătul acestui cadru reprezintă limitele octetului, astfel încât, dacă ați desena un grup de octeți adiacenți, ar fi clar unde se termină un octet și începe altul. Liniile mici împart cadrul în locații individuale în care poate fi reprezentat fiecare dintre cei opt biți. Linia medie din mijloc împarte octetul în două bucăți egale de patru biți, care sunt nibbles. Nibbles au, de asemenea, o istorie lungă și variată. Nu am văzut niciodată ca acestea să fi fost standardizate. Cu toate acestea, punctul de vedere actual bine stabilit este că nibbles sunt grupuri de patru biți, așa cum le-am arătat mai jos. Toate aceste linii există doar pentru că oamenii desenează octeți. Liniile nu există în calculator.
Nibble-ul superior și Nibble-ul inferior sunt etichete așa cum ar fi folosite într-un octet Big-Endian. În Big-Endian, cifra cea mai semnificativă se află la capătul stâng al unui număr. Astfel, „Lower Nibble” reprezintă jumătatea cea mai puțin semnificativă a numărului din octet. De asemenea, cel mai puțin semnificativ bit se află în partea dreaptă LSBit (notat de obicei ca LSB) înseamnă „Least Significant Bit” (cel mai puțin semnificativ bit). Iar bitul cel mai semnificativ este în stânga. Nibble-ul superior din stânga este jumătatea cea mai semnificativă a numărului. MSBit (notat de obicei ca MSB) este bitul cel mai semnificativ. Acest lucru este identic cu modul în care scriem numerele zecimale cu cifra cea mai semnificativă în stânga. Acest lucru se numește Big-Endian, deoarece „capătul mare” al numărului este primul.
Ca urmare a faptului că octetul poate conține două cifre hexazecimale, un octet poate conține numere hexazecimale între 00 și FF (de la 0 la 255 în zecimal) Deci, dacă folosiți octeți pentru a reprezenta caracterele unui limbaj lizibil pentru oameni, trebuie doar să dați fiecărui caracter, semn de punctuație etc. un număr. (Apoi, bineînțeles, convingeți pe toată lumea să fie de acord cu codificarea pe care ați inventat-o.) Aceasta este doar o utilizare a octeților. De asemenea, octeții sunt folosiți ca și cod de program pe care calculatorul dumneavoastră îl rulează, numere pentru diverse date pe care le-ați putea avea și orice altceva care locuiește într-un calculator în CPU, memorie, stocare sau care se plimbă pe diversele autobuze și porturi de interfață.
Cum se pare, există două formate de octeți utilizate în mod obișnuit. Little-Endian a fost folosit în exemplele anterioare. Caracteristica sa este de a avea cifra cea mai semnificativă în stânga și cifra cea mai puțin semnificativă în dreapta.
Există, de asemenea, un format numit Little-Endian. După cum v-ați putea aștepta, este opusul lui Big-Endian, cu cifra cea mai puțin semnificativă în stânga și cifra cea mai semnificativă în dreapta. Acesta este opusul modului în care scriem numerele zecimale. Little-Endian nu este utilizat pentru ordinea biților într-un octet, dar este utilizat pentru ordinea octeților într-o structură mai mare. De exemplu: Un număr mare conținut într-un cuvânt Little-Endian de doi octeți ar avea cel mai puțin semnificativ octet în stânga. Dacă numărul de doi octeți ar fi în Big-Endian, octetul cel mai semnificativ ar fi în dreapta. Little-Endian este utilizat numai în contextul numerelor lungi cu mai mulți octeți pentru a stabili ordinea de semnificație a octeților în structura de date mai mare.
Există motive pentru a utiliza atât ordinea Big cât și Little byte, iar motivele importante depășesc scopul acestui articol. Cu toate acestea, Little-Endian tinde să fie utilizat în microprocesoare. Procesoarele x86-64 din majoritatea PC-urilor utilizează formatul de octeți Little-Endian. Deși generațiile ulterioare au instrucțiuni speciale care permit o utilizare limitată a formatului Big-Endian. Formatul de octeți Big-Endian este utilizat pe scară largă în rețele și, în special, în acele computere Z mari. Acum nu sunteți neapărat limitat la unul sau la altul. Cele mai noi procesoare ARM pot utiliza oricare dintre cele două formate Endian. Dispozitivele, cum ar fi microprocesoarele care pot utiliza atât Big-Endian, cât și Little Endian, sunt denumite uneori Bi-Endian.
Ei bine, uneori chiar aveți nevoie de mai mult de un octet pentru a păstra un număr. În acest scop, există formate mai lungi disponibile care sunt compuse din mai mulți octeți. De exemplu: Procesoarele x86-64 au Cuvinte care sunt 16 biți sau 2 octeți care se întâmplă să fie aliniați unul lângă altul cap-coadă, ca să spunem așa. Au, de asemenea, Cuvinte duble (32 de biți sau 4 octeți) și Cuvinte cvadruple (64 de biți sau 8 octeți). Acum, acestea sunt doar exemple de forme de date puse la dispoziție de hardware-ul procesorului.
Programatorii care lucrează cu limbaje au mult mai multe moduri de a organiza biții și octeții. Când programul este gata, un compilator sau un alt mecanism convertește modul în care programul are biții și octeții organizați în forme de date cu care hardware-ul procesorului poate face față.