“Det er alt sammen 1’er og 0’er.” Folk siger det, når de laver en joke eller en sarkastisk bemærkning. Når det drejer sig om computere tænkte, er det virkelig sandt. Og på hardwareniveau er det alt, hvad der er. Processoren, hukommelsen, forskellige former for lagring, USB-, HDMI- og netværksforbindelser samt alt andet i den pågældende mobiltelefon, tablet, bærbare computer eller stationære computer bruger kun 1’er og 0’er. Bytes sørger for gruppering af 1’erne og 0’erne. Så de er en stor hjælp til at holde dem organiseret. Lad os ser på, hvordan de gør det.

Bytes er måleenheden for data og programmer, der er gemt og bruges i din computer. Selv om byte har eksisteret i lang tid i computerhistorien og har antaget flere former, er dens nuværende længde på 8 bit veletableret. Taget enten enkeltvis eller som tilstødende grupper er bytes den generelt accepterede mest almindelige måde, hvorpå Bits i en computer holdes organiseret.

Så hvad er en bit? En bit er et binært ciffer; det vil sige, at den kun kan have to værdier. I computere er de to værdier, som en bit kan have, nul (0) og en (1). Det er det hele, der er ingen andre muligheder. En byte er blot otte binære bits, der tilsammen repræsenterer binære tal. Gennem forskellige kodningsordninger kan tallene repræsentere en lang række andre ting som f.eks. de tegn, vi skriver med.

Tabellen nedenfor viser en enkelt Big-Endian byte, der viser de enkelte bits i denne byte og deres tilhørende potenser af to. Alle data-bytes er i Big-Endian format. Der er andre bytes, f.eks. programkode, hvor Endian-formatering ikke gælder. De decimale værdier af hver potens af to er vist sammen med hver bit som reference. Forestil dig en linje mellem Bit 3 og Bit 4, hvor byten er underopdelt i fire bitgrupper kaldet Nibbles. Little-Endian er et meget almindeligt anvendt byteformat. Hold øje med mere om Endians. Hvis du er nysgerrig efter navnet, kan du lave en søgning på (etymologi af endian).

En Big-Endian Byte:

Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit5 Bit6 Bit7
Power of 2 27 26 25 24 23 22 21 21
Decimalværdi 128 64 32 16 8 8 4 2 1

Hver nibble i en byte kan indeholde et binært tal på fire bit, som vist i følgende tabel. Hvis en bit er sat til “1”, lægges denne potens af to til værdien af nibble’en. Hvis en bit er sat til “0”, lægges denne potens af to ikke til værdien af nibble’en. En byte, der består af to nibbles, kan indeholde et tocifret hexadecimalt tal. Bits er i virkeligheden alt, hvad en computer kan bruge. Programmører og ingeniører, der udvikler computerhardware, bruger hexadecimaltal for at gøre det lettere at håndtere bits. I nedenstående tabel er den mest betydningsfulde bit til venstre 20, 21, 22, 22, 23

En Big-Endian Nibble:

Binary
Number
Hexidecimal
Value
0000 0
0001 1
0010
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

Jeg vil forklare Big-Endian begyndende med et diagram over en byte. De længere linjer i slutningen af denne ramme er bytegrænserne, så hvis du tegnede en gruppe af tilstødende bytes, ville det være tydeligt, hvor en byte sluttede og en anden begyndte. De små linjer opdeler rammen i individuelle steder, hvor hver af de otte bits kan vises. Den mellemste linje i midten opdeler byten i to lige store stykker på fire bit, som er nibbles. Nibbles har også en lang og varieret historie. Jeg har aldrig set, at de er blevet standardiseret. Men den nuværende veletablerede opfattelse er dog, at nibbles er grupper af fire bits, som jeg har vist dem nedenfor. Alle disse linjer eksisterer kun, da folk tegner bytes. Linjerne eksisterer ikke i computeren.

Overste nibble og nederste nibble er betegnelser, som de ville blive brugt i en Big-Endian byte. I Big-Endian er det mest betydningsfulde ciffer i venstre ende af et tal. Så Lower Nibble er den mindst betydningsfulde halvdel af tallet i byte’en. Ligeledes er den mindst betydningsfulde bit i højre side LSBit (normalt noteret som LSB) står for Least Significant Bit. Og den mest betydningsfulde bit er til venstre. Den øverste nibble til venstre er den mest betydningsfulde halvdel af tallet. MSBit (normalt noteret som MSB) er den mest betydningsfulde bit. Dette er det samme som den måde, hvorpå vi skriver decimaltal med det mest betydningsfulde ciffer til venstre. Dette kaldes Big-Endian, fordi den “store ende” af tallet kommer først.

Med byte kan indeholde to hexadecimale cifre, kan en byte indeholde hexadecimale tal mellem 00 og FF (0 til 255 i decimaltal) Så hvis du bruger bytes til at repræsentere tegnene i et menneskeligt læsbart sprog, giver du bare hvert tegn, tegnsætningstegn osv. et tal. (Og så skal du selvfølgelig få alle til at være enige i den kodning, du har opfundet.) Dette er kun en af anvendelsesmulighederne for bytes. Bytes bruges også som programkode, som din computer kører, numre til forskellige data, du måtte have, og alt andet, der bor i en computer i CPU’en, hukommelsen, lageret eller zoomende rundt på de forskellige busser og interfaceporte.

Som det viser sig, er der to almindeligt anvendte byteformater. Little-Endian er blevet brugt i de tidligere eksempler. Dens egenskab er at have det mest betydende ciffer til venstre og det mindst betydende ciffer til højre.

Der findes også et format, der hedder Little-Endian. Som man kan forvente, er det modsat Big-Endian med det mindst betydende ciffer til venstre og det mest betydende ciffer til højre. Dette er det modsatte af den måde, vi skriver decimaltal på. Little-Endian bruges ikke til rækkefølgen af bits i en byte, men det bruges til rækkefølgen af bytes i en større struktur. F.eks: Et stort tal, der er indeholdt i et Little-Endian Word på to bytes, vil have den mindst betydningsfulde byte til venstre. Hvis tallet på to byte var i Big-Endian, ville den mest betydningsfulde byte være til højre. Little-Endian bruges kun i forbindelse med lange multibyte-tal for at indstille den betydningsmæssige rækkefølge af bytes i den større datastruktur.

Der er grunde til at bruge både Big og Little byte-ordnering, og de kødfulde grunde ligger uden for rammerne af denne artikel. Little-Endian har dog en tendens til at blive brugt i mikroprocessorer. x86-64-processorerne i de fleste pc’er anvender Little-Endian byte-formatet. De senere generationer har dog særlige instruktioner, som giver begrænset brug af Big-Endian-formatet. Big-Endian-byte-formatet er meget udbredt inden for netværk og især i de store Z-computere. Nu er man ikke nødvendigvis begrænset til det ene eller det andet. De nyere ARM-processorer kan bruge begge Endian-formater. Enheder som mikroprocessorer, der kan bruge både Big-Endian og Little Endian byteordner, kaldes undertiden for Bi-Endian.

Jamen, nogle gange har man virkelig brug for mere end én byte til at indeholde et tal. Til det formål er der længere formater til rådighed, som består af flere bytes. F.eks: x86-64-processorerne har Words, som er 16 bit eller 2 bytes, der tilfældigvis er linet op ved siden af hinanden hoved mod hale, så at sige. De har også Double Words (32 bits eller 4 bytes) og Quad Words (64 bits eller 8 bytes). Dette er blot eksempler på dataformer, der stilles til rådighed af processorhardwaren.

Programmører, der arbejder med sprog, har mange flere måder at organisere bits og bytes på. Når programmet er færdigt, konverterer en compiler eller en anden mekanisme den måde, programmet har bits og bytes organiseret på, til dataformer, som processorhardwaren kan håndtere.

Ligesom Indlæsning…

Articles

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.