Av Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se). Senaste ändring 17 januari 2006.
Kilo är ett prefix, vilket betyder något som man sätter framför ett annat ord. Ett enhetsprefix som kilo sätter man framför en enhet, som meter. Det finns fler såna enhetprefix, till exempel hekto, som betyder hundra, och milli, som betyder en tusendel.
En del av oss kommer ihåg fler prefix, som mega för en miljon och giga för en miljard. En megawatt är en miljon watt, och en gigawatt är en miljard watt. På vintern drar Sverige upp till 27000000000 watt elström, vilket är lika med 27000000 kilowatt, 27000 megawatt eller 27 gigawatt. (Ja, det ska skrivas megawatt och inte megaWatt eller MegaWatt. Dock är förkortningen MW.)
Tal med många nollor brukar man ange med hjälp av tiopotenser: 1000 kan skrivas som 103, 10000 som 104, och så vidare. En miljon har sex nollor (1000000), och kan skrivas som 106. En miljard har nio nollor (1000000000), och kan skrivas som 109.
Sammanfattning:
En riktigt gammal dator hade kanske ett minne som hade 1024 platser. Varför 1024 och inte 1000? Jo, det beror förstås på det där med binära tal. Datorn räknar: 0, 1, 10, 11, 100, 101, 110, 111, 1000, och så vidare. 1000 i det binära talsystemet motsvarar 8 i det vanliga decimala talsystemet. För att vara tydliga kan vi skriva att 10002 motsvarar 810.
Om datorn använder upp till tio binära siffror för att numrera minnesplatserna, blir det just 1024 olika nummer: från 0 upp till 11111111112. 11111111112 är lika med 102310. Med den minnesplatsen som har nummer noll, blir det 1024 minnesplatser.
Om datorn använder upp till tjugo binära siffror för att numrera minnesplatserna, går det att ha 1048576 olika minnesplatser. 111111111111111111112 plus ett är nämligen lika med 104857610. (Det är också lika med 1024 gånger 1024.)
Nu var det ganska opraktiskt att hela tiden prata om datorer med 1024 eller 1048576 minnesplatser. Därför noterade någon smart person att 1024 är ju ungefär 1000, så då kan vi använda prefixet kilo. Ungefär i alla fall. Och 1048576 är ju ungefär en miljon, så då kan vi använda prefixet mega. Ungefär i alla fall.
Om datorn kan lagra en byte (vilket brukar vara åtta bitar) i en minnesplats, talar man om kilobyte och megabyte.
I datorsammanhang blev det alltså så här:
Nej, så enkelt är det inte!
För det första är det bara när det handlar om informationsmängder, som ju mäts i bitar och bytes, som kilo är 1024 och mega är 1048576. I alla andra sammanhang är det de vanliga 1000- och 1000000-betydelserna som gäller. Om man till exempel har en datakabel som är en kilometer lång, så är den förstås 1000 meter och inte 1024.
Det gäller även processorhastigheter. När man ska ange hur snabb en processor är, brukar man ange klockfrekvensen. Den mäts i hertz, som förkortas Hz och som betyder svängningar per sekund. När det gäller hertz, som till exempel i klockfrekvenser för processorer, så är det ju inte en informationsmängd, och därför har man alltid använt de gamla riktiga prefixen. Om man säger att en dator har en processor på en gigahertz (GHz), så är det alltid 1000000000 Hz man menar, inte 1073741824.
Men ibland betyder kilo 1000 och mega 1000000 även när det handlar om informationsmängder. Det gäller främst i två fall: hårddiskar och bandbredd.
Tillverkarna av hårddiskar brukar använda de vanliga SI-betydelserna på mega och giga. Antag att vi har en hårddisk som har plats för 107374182400 byte. 107374182400 byte är exakt lika med 100 gånger 1073741824, och i datorsammanhang brukar man alltså kalla det för 100 gigabyte. Men en hårddisk som har plats för 107374182400 byte brukar i reklamen beskrivas som att den innehåller 107 gigabyte, och inte 100 gigabyte. (Det är förstås för att det låter mer, och tillverkarna vill att deras hårddiskar ska verka större.)
Bandbredd i datornät brukar mätas i bitar per sekund. Bandbredden anger alltså hur mycket data man kan skicka per sekund. Här använder man också de vanliga betydelserna på prefixen. En megabit per sekund är alltså 1000000 bitar per sekund, inte 1048576. Två megabit per sekund används ibland som en gräns för vad som är bredband och vad som inte är det, och det motsvarar 2000000 bitar per sekund, inte 2097152.
Så en gigabyte är lika med 1,07 gigabyte!
Kort utvikning: I verkligheten måste man köpa en ännu större hårddisk, för på hårddisken lagras också diverse extrainformation, till exempel om var på disken datat har placerats. Därför kan man inte utnyttja hela diskstorleken för sina data. Samma sak gäller för primärminnet, som ju ska innehålla operativsystem, program med mera. |
Mega är 1048576 när vi pratar om datamängder, men när vi pratar om bandbredd är mega precis en miljon (1000000). Om jag har en megabyte data, till exempel en (kort) MP3-fil som jag laddat ner från Internet, så är det 1048576 byte. Men hur lång tid tar det att ladda ner denna megabyte med data via ett datornät med bandbredden 1 megabit per sekund? Jo, först så måste vi förstås översätta mellan byte och bitar, och om en byte är 8 bitar så är 1048576 byte lika med 8388608 bitar. Och eftersom 1 megabit per sekund är en miljon bitar per sekund, tar det 8388608 delat med en miljon, dvs ungefär 8,4 sekunder, att överföra megabyten med data!
Om man tar innehållet i ett minne med storleken en megabit, och skickar det över ett datornät med hastigheten en megabit per sekund, tar det 1,05 sekunder.
Kort utvikning: I verkligheten tar det egentligen ännu längre tid, för på ett datornät skickas diverse extrainformation, till exempel adressen till den dator som datat ska till. Därför kan man inte utnyttja hela bandbredden för dataöverföring. |
Megabyte används egentligen inte om datornät, så om man talar om hur många megabyte som man skickar per sekund så är det informationsmängder man menar, och alltså 220-betydelsen på mega. Vill man skicka en megabyte per sekund över ett datornät måste nätet alltså klara 8,4 megabit per sekund. Ska man skicka en kilobyte på en sekund behövs 8,192 kilobit per sekund.
Men sen började man mäta minnet i megabyte. En megabyte kan vara 1000000 eller 1048576 byte, och 1048576 är nästan 5 procent mer än 1000000.
Numera mäter man ofta minnet i gigabyte. En gigabyte kan vara 1000000000 eller 1073741824. 1073741824 är mer än 7 procent mer än 1000000000.
Ju större datamängder vi talar om, desto mer ökar alltså skillnaden mellan de vanliga prefixen och de binära prefixen.
Nu är det många fler som behöver hålla reda på sånt här. Det är inte bara dataexperter som har datorer, och till exempel beställer nytt minne. Hur mycket minne måste jag köpa för att få plats med en hundra megabyte stor bild i PhotoShop? Hur mycket hårddisk måste jag köpa?
För att minska förvirringen har man uppfunnit så kallade binära enhetsprefix, så att kilo skulle kunna gå tillbaka till att alltid vara 1000, och 1024 skulle heta något annat.
Det var i januari 1999 som IEC (International Electrotechnical Commission) standardiserade bland annat de här prefixen:
De binära enhetsprefixen är inte SI-standard, utan bara en rekommendation från IEC.
En gissning är att av Sveriges befolkning så är det kanske 50 procent som överhuvudtaget har en aning om vad en kilobyte är:
För att försöka göra en i alla fall lite säkrare uppskattning av hur spridda de nya binära prefixen blivit, gjorde jag 30 augusti 2004 en undersökning i korridoren där jag sitter på universitetet i Örebro. Urvalet är datalärare och datatekniker, alltså personer som det förmodligen är extremt mycket troligare att de kan det här än att folk i allmänhet kan det. Resultat:
Hur många byte innehåller en kilobyte? | Vad är en kibibyte? |
---|---|
1024 | Nåt nytt |
1024 | Nåt nytt |
1024 | Vet ej |
1024 | 1000 |
Det beror på. 1000 eller 1024. | 1024 |
1024 | Vet ej |
1024 | Nåt nytt, eller nån som skrivit fel |
Slutsatsen är förstås att de här nya binära prefixen än så länge är väldigt okända. Därför bör man vara försiktig med hur man använder dem. Men även om man kanske inte ska svänga sig med mebibyte hur som helst, ska man komma ihåg att de gamla vanliga megabyten inte brukar betyda en miljon byte, men att de gör det ibland, och att det kan vara ganska rörigt att reda ut vilket.