Octet

Un octet, cu simbolul „o” (literă mică, pentru a nu fi confundat cu cifra zero)[1], este o unitate de măsură a informației echivalentă cu 8 biți de date, putând stoca, la orice moment, una dintr-un total de 256 de valori. În prezent termenul este de cele mai multe ori folosit ca sinonim pentru bait[2], în engleză byte, termen ce desemnează cea mai mică unitate de informație adresabilă de către un calculator, fiindcă imensa majoritate a arhitecturilor de calculatoare aflate în prezent în producție prevede adresarea baitului (octetului).[3]

Un bait nu a fost însă întotdeauna egal cu un octet, el fiind definit la început ca numărul de biți necesar reprezentării unui caracter. Au existat arhitecturi de calcul în care un bait avea 4 (nibble), 5, 6, 7 sau chiar 9 biți, de aceea termenul octet este preferat atunci când este posibilă apariția unei confuzii cu privire la numărul de biți.[4][5]

10110110 în baza 2 (binar) = B6 în baza 16 (hexazecimal) = 182 în baza 10 (zecimal)

Exemplu de octet în cele trei baze de numerotație uzuale

Dacă reprezentăm cei opt biți ca un șir orizontal de opt căsuțe, cel mai din stânga bit se numește "cel mai semnificativ", iar cel mai din dreapta, "cel mai puțin semnificativ". Dacă numerotăm biții cu cifre n între 0 și 7 începând de la cel mai puțin semnificativ (de la dreapta la stânga) și notăm valorile biților respectivi (0 sau 1) cu bn, atunci valoarea octetului este

Doi octeți puși unul lângă altul ca un tot comun (16 biți) pot reține valori între 0 și 65535, și se numesc în mod uzual în limbajul informatic "un cuvânt". Patru octeți (32 de biți) se numesc "cuvânt dublu".

Cum un număr arbitrar de n biți poate stoca valori între 0 și 2n-1, o jumătate de octet (4 biți) poate stoca valori între 0 și 24-1=15. Numerele de la 0 la 15 reprezintă o cifră unică în sistem hexazecimal (numere în baza 16). Astfel, un octet poate fi reprezentat în mod unic, complet și biunivoc de un număr format din două cifre hexazecimale - prima cifră reprezentând jumătatea mai reprezentativă a octetului. Acest sistem de numerotație este atât de comod în acest context încât sistemul de numerotație hexazecimal a luat amploare și este folosit în mod curent în medii informatice.

O convenție alternativă de interpretare a informației dintr-un octet este ca cel mai semnificativ bit să se considere ca fiind "bit de semn". În acest fel se pot reprezenta numerele întregi dintre -128 și 127, luându-se în considerare numai biții 0...6 pentru valoare și bitul 7 pentru semn. În acest caz, dacă cel mai semnificativ bit este nul, se ia valoarea ca atare (0..127), iar dacă este nenul, se ia valoarea negativă a complementului binar: toți biții octetului sunt negați, se adaugă 1 la rezultat și valoarea pozitivă rezultată se înmulțește cu -1 (dacă nu s-ar adăuga 1 la valoarea negată binar a octetului, octetul 11111111 negat ar fi 00000000, care chiar înmulțit cu -1 ar dubla inutil valoarea octetului nul). Complementarea unui octet (negarea binară și adăugarea unității) poate fi calculată și ca scăderea valorii octetului din 256. În exemplul din imagine, dacă octetul respectiv este interpretat în acest fel, valoarea lui ar fi -1*((~101101102)+1) = -1*(010010012+1) = -1*(10016-B616) = -1*(256-182)=-74.

La propunerea IEC, IEEE a adoptat standardul IEEE 1541, prin care recomandă folosirea prefixelor din Sistemul internațional de unități (SI) pentru multiplii și submultiplii octetului.[6]:

kB sau ko kilobait sau kilooctet 103 bytes 1 000 bytes
MB sau Mo megabait sau megaoctet 106 bytes 1 000 000 bytes
GB sau Go gigabait sau gigaoctet 109 bytes 1 000 000 000 bytes
TB sau To terabait sau teraoctet 1012 bytes 1 000 000 000 000 bytes
PB sau Po petabait sau petaoctet 1015 bytes 1 000 000 000 000 000 bytes
EB sau Eo exabait sau exaoctet 1018 bytes 1 000 000 000 000 000 000 bytes
ZB sau Zo zettabait sau zettaoctet 1021 bytes 1 000 000 000 000 000 000 000 bytes
YB sau Yo yottabait sau yottaoctet 1024 bytes 1 000 000 000 000 000 000 000 000 bytes

Standardul recomandă folosirea altor prefixe pentru multiplii construiți pe baza puterilor lui 2, după cum se arată în tabelul de mai jos.[6] Adopția standardului IEEE 1541 este însă extrem de restrânsă, foarte mulți specialiști continuând să folosească doar prefixele din SI pentru multiplii construiți cu puterile lui 2, ignorând complet multiplii zecimali.[7][8]

KiB sau Kio kibibait sau kibioctet 210 bytes 1 024 bytes
MiB sau Mio mebibait sau mebioctet 220 bytes 1 048 576 bytes
GiB sau Gio gibibait sau gibioctet 230 bytes 1 073 741 824 bytes
TiB sau Tio tebibait sau tebioctet 240 bytesi 1 099 511 627 776 bytes
PiB sau Pio pebibait sau pebioctet 250 bytes 1 125 899 906 842 624 bytes
EiB sau Eio exbibait sau exbioctet 260 bytes 1 152 921 504 606 846 976 bytes
ZiB sau Zio zebibait sau zebioctet 270 bytes 1 180 591 620 717 411 303 424 bytes
YiB sau Yio yobibait sau yobioctet 280 bytes 1 208 925 819 614 629 174 706 176 bytes
  1. ^ Standardul ISO 80000-13:2008 (Cantități și unități, Partea 13 - Știința și tehnologia informației)
  2. ^ bait” la DEX online
  3. ^ Deși standardul ISO 80000-13:2008 precizează că în cadrul său byte este sinonim cu octet, tot acolo se precizează și faptul că nu întotdeauna acesta este înțelesul termenului. De asemenea, alte standarde, ca de exemplu ISO/IEC 9899:1999 (standardul limbajului C) precizează că numărul de biți din byte depinde de implementare.
  4. ^ Bemer, RW; Buchholz, Werner (), „6, Character Set”, În Buchholz, Werner, Planning a Computer System – Project Stretch (PDF) .
  5. ^ Bemer, RW (), „A proposal for a generalized card code of 256 characters”, Communications of the ACM, 2 (9): 19–23 .
  6. ^ a b BIPM - SI prefixes
  7. ^ Rick Simpson (). „Prefixes for binary multiples”. Accesat în . 
  8. ^ Brian Granger (7 august 2005). „I've Got a Bigger Gigabyte Than You („Am un gigabait mai mare decât tine")”. Accesat în 15 august 2008.  Verificați datele pentru: |date= (ajutor)

Legături externe

[modificare | modificare sursă]