”Allt är 1:or och 0:or.” Folk säger detta när de gör ett skämt eller en sarkastisk anmärkning. När det gäller datortankar är det verkligen sant. Och på hårdvarunivå är det allt som finns. Processorn, minnet, olika former av lagring, USB-, HDMI- och nätverksanslutningar, tillsammans med allt annat i den där mobiltelefonen, surfplattan, den bärbara datorn eller den stationära datorn använder bara 1:or och 0:or. Bytes är en gruppering av 1:or och 0:or. De är alltså till stor hjälp när det gäller att hålla dem organiserade. Låt oss ser på hur de gör det.

Bytes är måttenheten för data och program som lagras och används i din dator. Även om byten har funnits länge i datorhistorien och tagit flera olika former, är dess nuvarande 8-bitarslängd väl etablerad. Antingen enskilt eller som intilliggande grupper är bytes det allmänt accepterade vanligaste sättet att organisera bitarna i en dator.

Vad är då en bit? En bit är en binär siffra, det vill säga den kan bara ha två värden. I datorer är de två värden som en bit kan ha noll (0) och ett (1). Det är allt, inga andra valmöjligheter. En byte är bara åtta binära bitar som tillsammans representerar binära tal. Genom olika kodningsscheman kan siffrorna representera en mängd andra saker, t.ex. de tecken vi skriver med.

Tabellen nedan visar en enda Big-Endian-byte som visar enskilda bitar i denna byte och deras tillhörande potenser av två. Alla byte av data är i Big-Endian format. Det finns andra bytes, t.ex. programkod, där den endiska formateringen inte gäller. Decimalvärdena för varje potens av två visas tillsammans med varje bit som referens. Föreställ dig en linje mellan bit 3 och bit 4 där byte delas upp i fyra bitgrupper som kallas Nibbles. Little-Endian är ett mycket vanligt förekommande byteformat. Håll ögonen öppna för mer information om Endians. Om du är nyfiken på namnet kan du göra en sökning på (etymology of 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ärde 128 64 32 16 8 8 4 2 1

Varje nibble i en byte kan innehålla ett fyrbits binärt tal enligt följande tabell. Om en bit är satt till ”1” läggs denna tvåpotens till värdet av nibble. Om en bit är satt till ”0” adderas inte denna tvåpotens till värdet av nibble. En byte som är två nibbles kan innehålla ett tvåsiffrigt hexadecimalt tal. Bits är egentligen allt som en dator kan använda. Programmerare och ingenjörer som utvecklar datorutrustning använder hexadecimaltal för att underlätta hanteringen av bitar. I tabellen nedan är den mest signifikanta biten till vänster 20, 21, 22, 23

En Big-Endian Nibble:

Binary
Number
Hexidecimal
Value
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

Jag ska förklara Big-Endian med utgångspunkt i ett diagram på en byte. De längre linjerna i slutet av denna ram är bytesgränserna, så om du ritar en grupp av intilliggande bytes skulle det vara tydligt var en byte slutade och en annan började. De små linjerna delar in ramen i enskilda platser där var och en av de åtta bitarna kan visas. Den medelstora linjen i mitten delar upp byten i två lika stora bitar med fyra bitar som är nibbles. Nibbles har också en lång och varierad historia. Jag har aldrig sett att de har standardiserats. Den nuvarande väl etablerade uppfattningen är dock att nibbles är grupper av fyra bitar så som jag har visat dem nedan. Alla dessa linjer existerar bara när människor ritar bytes. Linjerna existerar inte i datorn.

Övre nibble och nedre nibble är etiketter som de skulle användas i en Big-Endian-byte. I Big-Endian är den mest signifikanta siffran på vänster sida av ett tal. Så Lower Nibble är den minst signifikanta halvan av talet i byte. På samma sätt är den minst signifikanta biten till höger LSBit (vanligen noterat som LSB) står för Least Significant Bit (minst signifikanta bit). Och den mest signifikanta biten ligger till vänster. Upper Nibble till vänster är den mest signifikanta halvan av talet. MSBit (vanligtvis noterad som MSB) är den mest signifikanta biten. Detta är samma sak som hur vi skriver decimaltal med den mest signifikanta siffran till vänster. Detta kallas Big-Endian eftersom den ”stora änden” av talet kommer först.

Med tanke på att en byte kan innehålla två hexadecimala siffror kan en byte innehålla hexadecimala tal mellan 00 och FF (0 till 255 i decimaltal) Så om du använder bytes för att representera tecknen i ett mänskligt läsbart språk ger du helt enkelt varje tecken, skiljetecken etc. ett nummer. (Och sedan får du förstås alla att hålla med om den kodning som du har uppfunnit.) Detta är bara en av användningsområdena för bytes. Bytes används också som programkod som din dator kör, nummer för olika data som du kan ha, och allt annat som bor i en dator i processorn, minnet, lagret eller som zoomar runt på de olika bussarna och gränssnittsportarna.

Det visar sig att det finns två vanligt förekommande byteformat. Little-Endian har använts i de tidigare exemplen. Dess egenskap är att ha den mest signifikanta siffran till vänster och den minst signifikanta siffran till höger.

Det finns också ett format som kallas Little-Endian. Som man kan förvänta sig är det motsatsen till Big-Endian med den minst signifikanta siffran till vänster och den mest signifikanta siffran till höger. Detta är motsatsen till hur vi skriver decimaltal. Little-Endian används inte för ordningen av bitar i en byte, men det används för ordningen av bytes i en större struktur. Till exempel: Ett stort tal som ingår i ett Little-Endian Word av två bytes skulle ha den minst signifikanta byte till vänster. Om talet på två byte var i Big-Endian skulle den mest betydelsefulla byten vara till höger. Little-Endian används endast i samband med långa multibytetal för att fastställa signifikansordningen för bytesen i den större datastrukturen.

Det finns skäl att använda både Big och Little byteordning och de köttsliga skälen ligger utanför den här artikelns räckvidd. Little-Endian tenderar dock att användas i mikroprocessorer. x86-64-processorerna i de flesta persondatorer använder Little-Endian-byteformatet. Även om de senare generationerna har särskilda instruktioner som ger begränsad användning av Big-Endian-formatet. Big-Endian-byteformatet används ofta i nätverk och särskilt i de stora Z-datorerna. Nu är du inte nödvändigtvis begränsad till det ena eller det andra. De nyare ARM-processorerna kan använda båda endiska formatet. Enheter som mikroprocessorer som kan använda både Big-Endian och Little Endian byteordning kallas ibland Bi-Endian.

Nja, ibland behöver man verkligen mer än en byte för att hålla ett tal. Därför finns det längre format som består av flera bytes. Till exempel: x86-64-processorerna har Words som är 16 bitar eller 2 bytes som råkar vara uppradade bredvid varandra med huvudet mot svansen, så att säga. De har också Double Words (32 bitar eller 4 byte) och Quad Words (64 bitar eller 8 byte). Detta är bara exempel på dataformer som görs tillgängliga av processorns maskinvara.

Programmerare som arbetar med språk har många fler sätt att organisera bitar och bytes. När programmet är färdigt omvandlar en kompilator eller en annan mekanism det sätt på vilket programmet har bitar och bytes organiserade till dataformer som processorhårdvaran kan hantera.

Like Loading…

Articles

Lämna ett svar

Din e-postadress kommer inte publiceras.