Byte

eenheid van digitale informatie bestaande uit acht bits
Zie Byte (doorverwijspagina) voor andere betekenissen van Byte.

Een byte (symbool: B) is een binaire eenheid van informatie, voor te stellen als een woord van een aaneengesloten rij van bits. De de facto standaard is dat een byte uit 8 bits bestaat. Het kan zijn dat vroeger (jaren 60) er nog geen consensus was over de precieze definitie en ook verwarring met een (machine)woord ligt voor de hand. De moderne definitie van een byte is de kleinst rechtstreeks adresseerbare eenheid. Daarmee is de eenheid van informatie van een byte, hoewel tegenwoordig altijd 8 bits, afhankelijk van de gebruikte processorarchitectuur (hardware). Architecturen zoals de CDC 6600, waarbij de kleinst adresseerbare eenheid 60 bits groot is, hebben dan ook een byte ter grootte van 60 bits.

Geheugengroottes worden uitgedrukt in bytes, meestal met gebruikmaking van een decimaal of binair standaardveelvoud (1000n B of 1024n B, met n = 1, 2, 3, ...).

In een byte kan onder meer een letter, cijfer of leesteken opgeslagen worden, bijvoorbeeld volgens de ASCII- of IBM's EBCDIC-codering.

Het woord 'byte' is een aanpassing van het woord 'bite' (hapje) om verwarring met bit te voorkomen. Het is door Werner Buchholz in 1956 bedacht tijdens de ontwikkeling van de Stretch-computer van IBM. Het woord duidt op een 'hapje' vol bits. Het woord 'nibble' heeft dezelfde etymologie.

Veelvouden van bytes

bewerken
  Zie Veelvouden van bytes voor het hoofdartikel over dit onderwerp.

Voor grotere hoeveelheden van bytes worden (ook) SI-voorvoegsels als kilo, mega, giga en dergelijke gebruikt. In de computerwereld werden ze van oudsher echter op een iets andere manier gebruikt dan in het SI-stelsel. De meeste computers, en in ieder geval alle gangbare, werken namelijk niet met het decimale (tientallige) talstelsel dat aan het SI ten grondslag ligt, maar met het binaire (tweetallige) stelsel. Capaciteiten binnen een computer, bijvoorbeeld van het interne geheugen, worden daarom vaak in machten van 2 uitgedrukt en niet in machten van 10. Dat heeft onder meer mee te maken met het feit dat het maximale aantal adressen dat met een N-bits adresbus geadresseerd kan worden 2N is. Daar 210 (1024) in de buurt van 103 (1000) ligt, werd ooit bedacht dat het handig zou zijn de naam kilobyte niet voor 1000 bytes, maar voor 1024 bytes te gebruiken.

Dat werd echter niet in alle gevallen gedaan. Voor capaciteiten van extern geheugen, bijvoorbeeld harde schijven, werd vaak wél het tientallig stelsel gebruikt. Soms werden beide stelsels door elkaar gebruikt. Zo heeft een diskette van 1,44 megabyte niet een capaciteit van 1,44×1024×1024 bytes, en ook niet van 1,44×1000×1000 bytes, maar van 1,44×1000×1024 bytes.

Ook telecommunicatiesnelheden worden meestal in machten van 1000 uitgedrukt: een lijn van 34 Mbit/s transporteert 34 000 000 bits per seconde. Soms worden echter ook op dit gebied beide stelsels door elkaar gebruikt.

Dit dubbelzinnige gebruik van voorvoegsels brengt uiteraard verwarring met zich mee. Naarmate de machten groter worden, neemt bovendien de afwijking tussen de decimale en de binaire factoren toe. Voor een kilobyte is het verschil 2,4%, voor een terabyte is dat al bijna 10%.

In 1998 ontwikkelde de International Electrotechnical Commission (IEC) een norm met andere namen en voorvoegsels voor de binaire factoren, te gebruiken bij veelvouden van bits en van bytes.

decimaal (grondtal 10, conform SI)   binair (grondtal 2, niet conform SI)
aantal bytes naam symbool aantal bytes traditioneel volgens IEC-1998
naam symbool naam symbool
(dubbelzinnig) (dubbelzinnig) (eenduidig)
103 kilobyte kB 210 = 1,024 × 103 kilobyte kB kibibyte KiB
106 megabyte MB 220 ≈ 1,049 × 106 megabyte MB mebibyte MiB
109 gigabyte GB 230 ≈ 1,074 × 109 gigabyte GB gibibyte GiB
1012 terabyte TB 240 ≈ 1,100 × 1012 terabyte TB tebibyte TiB
1015 petabyte PB 250 ≈ 1,126 × 1015 petabyte PB pebibyte PiB
1018 exabyte EB 260 ≈ 1,153 × 1018 exabyte EB exbibyte EiB
1021 zettabyte ZB 270 ≈ 1,181 × 1021 zettabyte ZB zebibyte ZiB
1024 yottabyte YB 280 ≈ 1,209 × 1024 yottabyte YB yobibyte YiB

De nieuwe voorvoegsels maken géén deel uit van het SI-stelsel. De voorvoegsels zijn een samentrekking van (bijvoorbeeld) 'kilo' en 'binary'. De aanbevolen uitspraak van het gedeelte 'bi' is 'bie' en niet 'baai'. De 'K' van 'KiB' is, anders dan de 'k' van 'kB', een hoofdletter.

Het Institute of Electrical and Electronics Engineers (IEEE) besloot deze IEC-norm toe te gaan passen in al zijn normvoorschriften, met de kanttekening dat het traditionele systeem, mits steeds expliciet als zodanig kenbaar, kan worden gebruikt "totdat een systeem van binaire voorvoegsels zal zijn aanbevolen door een daarvoor in aanmerking komend standaardisatie-instituut".[1]

Deze kanttekening van het IEEE ten spijt kan men er als men zonder voorkennis een publicatie leest nog niet op vertrouwen dat de IEC-norm gebruikt is – tenzij dat expliciet in de publicatie vermeld is of er IEC-voorvoegsels gebruikt worden. De IEEE-voorschriften worden niet altijd en overal gebruikt.

Meestal wordt de waarde van een 8-bits byte weergegeven als twee hexadecimale cijfers; daarbij wordt de byte opgesplitst in tweemaal vier bits; een groep van vier bits heet een nibble (bij Philips tetrad of tetrade).

Industrie

bewerken
  • Ecma International gebruikt de frase "8-bit single byte" veelvuldig aan het begin van haar normbladen.
  • Om expliciet aan te geven dat men acht bits bedoelt, gebruikt men ook wel het woord octet (bij Philips octad (Engels) of octade (Nederlands)). Mogelijk werd de term byte vermeden omdat die intellectueel eigendom was van IBM.
In officiële documenten (bijvoorbeeld de Requests for Comment (RFC's)) en in de telecomsector wordt octet gebruikt, omdat dit explicieter is.