Till startsidan för Jonas Webresurs!

Bitar och bytes

1. Inledning

Den här sidan berättar mer om hur bitar och bytes fungerar. En del som skrivs här går att hitta mer om på många andra sidor på min webresurs, bl.a Vad är en dator? Längst ner på sidan berättar jag mer om var man kan fortsätta läsa.

2. Bitar och bytes

Ordet bit står för Binary Digit och är den minsta informationsbärande enheten en dator kan hantera. Man kan jämföra en bit med en strömbrytare, som antingen kan vara på eller av. En bit har alltså antingen värdet "PÅ" eller "AV". Andra sätt att tolka detta är att säga att en bit kan representera värdena "ETT" eller "NOLL", "JA" eller "NEJ", "SANT" eller "FALSKT".

Eftersom datorns hjärna använder miljontals strömbrytare för att göra olika beräkningar, är detta en bra liknelse. Strömbrytaren kan antingen vara påslagen eller avstängd. Detta innebär att en bit i datorsammanhang innebär något av värdena "ETT" eller "NOLL" (etc).

En bit innebär alltså ett av två möjliga värden. Man kan representera två värden med enbitssystemet, enligt det binära talsystemet. Men bara ett värde kan åstadkommas i taget.

Utökar man antalet strömbrytare till två stycken, får man dubbelt så många - fyra - kombinationsmöjligheter. Två bitar ger värdena noll-ett, noll-noll. ett-noll och ett-ett. Man kan skriva dem så här: 01, 00, 10, 11.

För varje strömbrytare vi lägger till fördubblas antalet möjliga kombinationer. Använder vi åtta strömbrytare får vi 256 möjliga kombinationer, som är detsamma som en byte.

Talet 256 kan även skrivas som 28, som uttalas "2 upphöjt till 8" och är samma sak som 2x2x2x2x2x2x2x2. 2 står här för en strömbrytare, dvs värdena 0 och 1. 8 står för antalet strömbrytare och 256 är alltså det antal kombinationsmöjligheter som strömbrytarna kan ställas in på. Den första kan vara påslagen, den andra avslagen, osv.

Om 28 blir 256 så ser vi lätt att 29 blir 512 och 210 blir 1.024. 256 gånger 2 är ju 512 och 512 gånger 2 blir 1.024.

Bitar och bytes I datorsammanhang brukar man säga att varje strömbrytare utgörs av en bit. Som jag nu visat kan en bit representera två olika värden och 8 bitar 256 värden.

Man har kommit överens om att 8 bitar skall motsvara en byte. En byte kan alltså också representera 256 olika värden. Detta får konsekvenser för många datorsystem och program, eftersom det därmed finns en begränsning i hur många värden man kan representera med en byte.

Om vi tänker os sen byte som ett rutsystem, bestående av 256 olika rutor, ser vi att varje ruta kan göras svart eller vit. Vi kan då med detta system skapa ett mönster, t.ex en siffra eller en bokstav. Bilden visar hur det ser ut.

Vill vi göra andra mönster eller ha en tydligare och jämnare linje för bokstaven, måste rutmönstret göras tätare och rutorna måste bli mindre. Men det går ju inte här, eftersom vi bara har 256 olika rutor.

För att åstadkomma ett finmaskigare rutmönster måste vi därför använda oss av flera bytes för samma tecken. Men detta skapar i sin tur problem med en ökad mängd data, som datorn måste hantera. I moderna datorer utgörs instruktionerna oftast av upp till tre eller fyra bytes åt gången. Internetadresser representeras också av 4 bytes, där varje byte har förmågan att representera 256 olika värden:

256. 112. 65. 1
1 2 3 4

Byte är en liten enhet. När man pratar om hur stor en datafil är säger man kanske att den är 5 kilobytes. "Kilo" betyder ju tusen så det betyder att filen är femtusen bytes. Detta skrivs oftast som "5 kB". Byte representeras alltså av ett stort "B", medan bit oftast skrivs ut som ett helt ord.

En megabyte (skrivs MB) är tusen kilobyte eller en miljon bytes. Det finns också ännu större enheter, som tabellen nedan visar:

enhet: byte kilobyte megabyte gigabyte terabyte
förkortas: B kB MB GB TB
storlek: 1 1.000
(tusen)
1.000.000
(miljon)
1.000.000.000
(miljard)
1.000.000.000.000
(biljon)

3. Matematiska eller datatekniska bytes?

Man blir oftast ganska förvirrad när man pratar om bitar och bytes och försöker räkna ut hur många bytes som går på en kilobyte eller megabyte. Anledningen är att man sällan skiljer mellan hur man räknar matematiskt och hur datorn räknar.

För oss är en kilobyte detsamma som tusen bytes, men för datorn är en kilobyte i stället 1.024 bytes. Hur kan det komma sig? Jo, när vi räknar tusen stycken av något tar vi en etta och lägger till tre nollor och får 1.000. Men datorn räknar i stället tusen som 210 (2 upphöjt till tio). Som du kunde läsa i förra avsnittet är detta detsamma som 2x2x2x2x2x2x2x2x2x2, dvs 1.024.

Enhet Matematiskt Datatekniskt
1 byte 1 byte 1 byte
1 kB
(1 kilobyte)
1.000 bytes 1.024 bytes (210)
1 MB
(1 megabyte)
1.000.000 bytes 1.048.576 bytes (220)

Skälet till skillnaden är alltså att vi använder två olika sätt att uttrycka enheten byte på. Säger vi att en fil är på "en megabyte" har vi oftast inte riktigt klart för oss hur många bytes vi egentligen menar.

Förmodligen skulle vi protestera om någon påstod att en megabyte är 1.048.576 bytes. Men datorn räknar ju med "strömbrytare" och uttrycker i stället "megabyte" som "två upphöjt till tjugo" eller 220. Därför blir det en skillnad.

I praktiken innebär inte detta något större problem, eftersom vi sällan behöver veta exakt hur många bytes som en fil (etc) innehåller. Då räcker det att veta ungefär hur många byte som går på en megabyte.

4. Vidareläsning

Vill du lära dig mer om hur man räknar med det binära talsystemet, skall du läsa sidan Vad är en dator?.

Om du vill lära dig med om hur tecken kan representeras med olika system, skall du i stället läsa mer på sidan Konstiga tecken. På sidan om teckenstandarden ISO-8859-1 kan du se ett praktiskt exempel på vilka tecken som kan ingå i en sådan.

Behöver du information om bildernas matematik skall du läsa sidan som heter just Bildernas matematik. Du hittar också lite material på sidorna Bildskärmar och Scannern.

Tack till Jörgen Claesson och Henrik för kommentarerna till denna text!


Den här sidan är en del av Jonas Webresurs - www.jonasweb.nu - copyright © 1998-2011