Tilbake
8.2

8.2 Tallrepresentasjon og data

Hvordan tall, tegn og bilder lagres binært: 2^n symboler, binær↔desimal↔hex, toer-komplement, flyttall, ASCII/Unicode, RGB og bildestørrelse.

60 min
10 oppgaver
Tallrepresentasjondata
Din fremgang i kapitlet
0 / 10 oppgaver
Kapitlets plass i kurset
Forkunnskaper

Ingen programmeringskunnskap kreves. Du bør være komfortabel med å gange og dele små tall for hånd, og med potenser: 23=82^{3} = 8 betyr «2 ganget med seg selv tre ganger».

- kap. 8.1 — maskinvarekapitlet. Der møtte du prefiksene kilo, mega, giga og tera, som brukes igjen her.

Vil du ha stoffet i en bredere innpakning, dekker IN1020-boka konverteringene med mer drill:

- Tallsystemer og direkte konvertering — binær, desimal og heksadesimal med mange øvingsoppgaver.
- To-er komplement og byte-tolkning — negative heltall binært.
- Tegn, filformater, farger og komprimering — ASCII, Unicode og RGB.

Tilleggslesingen er frivillig. Alt TDT4110 spør om, står her.

Løkke 1 — Bit, byte og regelen om 2n2^{n} (~12 min)

En lyspåbryter kan stå i to stillinger. Med én bryter kan du signalisere to beskjeder: «kom» eller «kom ikke».

Med to brytere blir det fire kombinasjoner: av-av, av-på, på-av, på-på. Med tre brytere blir det åtte. Hver bryter du legger til, dobler antall kombinasjoner.

Det er hele grunnlaget for hvordan en datamaskin lagrer alt den lagrer. Bryterne er transistorer fra kap. 8.1, og regelen har et navn: 2n2^{n}.

Bit

Ett bit er ett binærsiffer: en verdi som er enten 00 eller 11. Ordet kommer av binary digit.

Ett bit er den minste informasjonsmengden som finnes. Det svarer til svaret på ett ja/nei-spørsmål, eller til stillingen på én bryter.

Alt annet — tall, tekst, bilder, lyd, programmer — er lange rekker av bit.

Byte

Én byte er 8 bit. Det er den vanlige enheten når datamengder måles, fordi ett tegn i den eldste tegnkodingen tar akkurat én byte.

Med 8 bit får du 28=2562^{8} = 256 ulike kombinasjoner. En byte kan altså holde et heltall fra 00 til 255255, eller ett tegn fra det utvidede ASCII-settet.

Skrivemåten skiller: liten b betyr bit, stor B betyr byte. «100 Mb/s» (nettverkshastighet) er altså åtte ganger mindre enn «100 MB/s» (lesehastighet fra disk). Dette er en klassisk felle.

Regelen om 2n2^{n} symboler
Med nn bit kan du representere 2n2^{n} forskjellige symboler.

Dette er den viktigste enkeltformelen i hele teoridelen, og den går begge veier:

- Framover: «Hvor mange symboler med 6 bit?» 26=64\to 2^{6} = 64.
- Bakover: «Hvor mange bit trengs for 300 symboler?» \to finn minste nn der 2n3002^{n} \ge 300. Siden 28=2562^{8} = 256 er for lite og 29=5122^{9} = 512 er nok, trengs 9 bit.

Toerpotensene du bør kunne utenat:

nn2n2^{n}nn2n2^{n}
128256
24101 024
38124 096
4161665 536
5322416 777 216
664324 294 967 296
7128

Fellen ved «bakover»-spørsmål: svaret er alltid det minste nn som er stort nok, ikke det som er nærmest. For 300 symboler er 8 bit nærmest, men 9 bit er riktig.
✏️Eksempel 1: Et gjennomgått regnespørsmål om $2^{n}$
Hvor mange ulike symboler kan representeres med 6 bit?

- a) 12 symboler
- b) 36 symboler
- c) 64 symboler
- d) 128 symboler

Riktig svar: c)

Regnestykket, steg for steg:

26=2×2×2×2×2×2=642^{6} = 2 \times 2 \times 2 \times 2 \times 2 \times 2 = 64

Du kan også bygge deg oppover fra en potens du kan: 25=322^{5} = 32, og en dobling til gir 6464.

De tre gale alternativene er de tre vanligste regnefeilene, og de er verdt å kjenne igjen:

- 12 er 6×26 \times 2. Man ganger i stedet for å opphøye. Dette er den hyppigste feilen på hele spørsmålstypen.
- 36 er 626^{2}. Grunntall og eksponent er byttet om.
- 128 er 272^{7}. Man teller én potens for langt, ofte fordi man begynner på 21=22^{1} = 2 og teller seks doblinger fra to.

Sikringen: skriv ned rekka 2,4,8,16,32,642, 4, 8, 16, 32, 64 og tell posisjonene. Den sjette er 64. Det tar fem sekunder og fjerner alle tre feilene.

📝Oppgave 1

(Innstegsoppgave, sjanger A — teori-flervalg: ett riktig alternativ av fire.) Hvor mange bit er én byte?

- a) 4 bit
- b) 8 bit
- c) 16 bit
- d) 1 024 bit

📝Oppgave 2
Sjanger A

Et system skal kunne kode 1 000 forskjellige varenummer. Hvor mange bit trengs som et minimum?

- a) 10 bit
- b) 9 bit
- c) 500 bit
- d) 1 000 bit

Løkke 2 — Binær, desimal og heksadesimal (~18 min)

Tallet 205 betyr «to hundre, null tiere, fem enere». Sifrene har ulik verdi ut fra hvor de står, og verdiene er potenser av ti: 102,101,10010^{2}, 10^{1}, 10^{0}.

Det er den eneste ideen du trenger. Et binært tall er nøyaktig det samme, bare med potenser av to. Et heksadesimalt tall er det samme med potenser av seksten.

Denne løkka er den tyngste i kapitlet — og den lønner seg mest. To eller tre av teorispørsmålene på et sett kan være rene konverteringer.

Posisjonssystem og grunntall
Et posisjonssystem gir hvert siffer en verdi som avhenger av hvor det står. Verdien til en plass er grunntallet opphøyd i plassnummeret, talt fra høyre med start på 00.

I titallsystemet er grunntallet 1010:

205=2×102+0×101+5×100205 = 2 \times 10^{2} + 0 \times 10^{1} + 5 \times 10^{0}

I totallsystemet er grunntallet 22, i sekstentallsystemet er det 1616. Reglene er ellers identiske.

Notasjon i denne boka: når det kan misforstås, skrives grunntallet som fotskrift — 101121011_{2}, 20510205_{10}, B616B6_{16}. Ellers går det fram av sammenhengen.

Det binære tallsystemet

Tallsystemet med grunntall 2. Bare sifrene 00 og 11 finnes, og plassverdiene er 1,2,4,8,16,32,64,128,1, 2, 4, 8, 16, 32, 64, 128, \ldots regnet fra høyre.

Datamaskiner bruker det fordi maskinvaren består av brytere med to stillinger. Det er ingen dypere grunn enn det.

Et binært tall er alltid oppgitt med et bestemt antall bit i praksis — 8, 16, 32 eller 64 — og foranstilte nuller skrives derfor ofte med: 000001010000\,0101 i stedet for 101101.

Det heksadesimale tallsystemet

Tallsystemet med grunntall 16. Det trenger seksten sifre, så etter 99 fortsetter man med bokstaver:

Hex00112233445566778899ABCDEF
Desimal0123456789101112131415

Heksadesimalt brukes fordi det er kompakt og oversetter rett til binært: ett hex-siffer er nøyaktig fire bit. En byte blir dermed alltid akkurat to hex-sifre, som er langt lettere å lese enn åtte nuller og enere.
Du møter hex i webfargekoder (#FF8000), i MAC-adresser og i minneadresser.

Nibble (fire bit)

Fire bit kalles en nibble — en halv byte.

Nibbelen er hele broen mellom binært og heksadesimalt: én nibble er nøyaktig ett hex-siffer, fordi 24=162^{4} = 16.

Det er derfor konverteringen mellom de to systemene er den eneste konverteringen du kan gjøre uten å regne: du bare deler bitrekka i grupper på fire og slår opp.

📜Regnemetode: binært til desimalt
Metode. Skriv plassverdiene over bitene, fra høyre: 1,2,4,8,16,32,64,128,1, 2, 4, 8, 16, 32, 64, 128, \ldots Legg sammen plassverdiene der det står 11.

Eksempel: 10110110210110110_{2}

Bit10110110
Plassverdi1286432168421
Teller med?jajajajaja

128+32+16+4+2=182128 + 32 + 16 + 4 + 2 = 182
Kontroll: det største 8-bits tallet er 111111112=25511111111_{2} = 255. Får du et svar over 255 fra åtte bit, har du regnet feil et sted.
📜Regnemetode: desimalt til binært
To metoder gir samme svar. Bruk den du husker best under press.

Metode 1 — trekk fra den største plassverdien. Finn den største toerpotensen som er mindre enn eller lik tallet, sett 11 der, trekk fra, og gjenta.

200200: største potens 200\le 200 er 128128. Sett 11, rest 7272. Største 72\le 72 er 6464. Sett 11, rest 88. Største 8\le 8 er 88. Sett 11, rest 00. Resten blir nuller:

200=128+64+8=110010002200 = 128 + 64 + 8 = 11001000_{2}

Metode 2 — del gjentatte ganger på 2 og les restene BAKLENGS.

DivisjonKvotientRest
45:245 : 2221
22:222 : 2110
11:211 : 251
5:25 : 221
2:22 : 210
1:21 : 201

Restene lest nedenfra og opp: 1011012=45101101_{2} = 45.
Fellen i metode 2 er å lese restene i den rekkefølgen de kom. Da får du 101101101101 speilvendt, og svaret blir feil. Skriv derfor alltid en pil oppover ved siden av restkolonnen.
📜Regnemetode: binært \leftrightarrow heksadesimalt
Denne konverteringen krever ingen regning i det hele tatt — bare gruppering.

Binært \to hex: del bitrekka i grupper på fire fra HØYRE, fyll på med nuller foran om nødvendig, og oversett hver gruppe.

10101101210101101_{2} deles i 10101010 og 11011101. Det gir 1010 og 1313, altså A og D:

101011012=AD1610101101_{2} = AD_{16}

Hex \to binært: oversett hvert siffer til fire bit, og la nullene foran stå.

2F162F_{16}: 2=00102 = 0010 og F=1111F = 1111, altså 00101111200101111_{2}. Kontroll mot desimalt: 2×16+15=472 \times 16 + 15 = 47, og 32+8+4+2+1=4732 + 8 + 4 + 2 + 1 = 47. Stemmer.

Fellen er å gruppere fra venstre. 1010110110101101 gruppert fra venstre gir samme svar fordi lengden er delelig med fire — men 110101110101 gruppert fra venstre gir 11011101 og 0101, altså D1D1, mens det riktige er 1111 og 01010101, altså 351635_{16}. Fra høyre, alltid.

✏️Eksempel 2: Et gjennomgått konverteringsspørsmål
Hva er 10110110210110110_{2} i desimalt og i heksadesimalt?

- a) 182 desimalt og B616B6_{16}
- b) 182 desimalt og 6B166B_{16}
- c) 178 desimalt og B616B6_{16}
- d) 183 desimalt og B716B7_{16}

Riktig svar: a)

Desimalt (plassverdimetoden):

128+32+16+4+2=182128 + 32 + 16 + 4 + 2 = 182

Heksadesimalt (grupper på fire fra høyre): 10111011 og 01100110. Det gir 11=B11 = B og 6=66 = 6, altså B616B6_{16}.

Kontroll — regn tilbake: B×16+6=11×16+6=176+6=182B \times 16 + 6 = 11 \times 16 + 6 = 176 + 6 = 182. De to svarene stemmer overens, og da vet du at begge er riktige. Denne kryssjekken tar ti sekunder og er verdt hver av dem.

De tre gale alternativene:

- 182 og 6B6B har riktig desimaltall, men har snudd hex-sifrene. Det er den vanligste fella, og den kommer av å gruppere feil vei eller å skrive gruppene i motsatt rekkefølge.
- 178 og B6B6 har riktig hex, men har mistet et ledd i addisjonen (182178=4182 - 178 = 4, altså firertallet).
- 183 og B7B7 er gale, men konsistent gale: de svarer begge til 10110111210110111_{2}, altså mønsteret med det siste bitet lest som 1 i stedet for 0. Alternativet fanger den som leser fort — og det er verdt å merke seg at et alternativ kan henge sammen med seg selv og likevel være galt.

Sensorpoeng: to av de fire alternativene har riktig desimaltall. Regner du bare desimalt og krysser av, har du 50 % sjanse. Regn begge, kryss av, og gå videre.

📝Oppgave 3
Sjanger A

Hva er 1101012110101_{2} i desimaltall?

- a) 43
- b) 53
- c) 61
- d) 106

📝Oppgave 4
Sjanger A

Hva er 17310173_{10} i binært?

- a) 1011010110110101
- b) 1101011011010110
- c) 1010111010101110
- d) 1010110110101101

Binæraddisjon

Addisjon i totallsystemet følger de samme reglene som i titallsystemet, med bare fire tilfeller:

RegnestykkeResultat
0+00 + 000
0+10 + 111
1+01 + 011
1+11 + 100, og 1 i mente

Eksempel, 10112+011021011_{2} + 0110_{2}:
Kolonne (fra høyre)RegnestykkeSifferMente videre
11+01 + 010
21+11 + 101
30+1+10 + 1 + 101
41+0+11 + 0 + 101
5mente1

Svaret er 10001210001_{2}. Kontroll i desimaltall: 11+6=1711 + 6 = 17, og 100012=16+1=1710001_{2} = 16 + 1 = 17. Stemmer.
Legg merke til at summen ble fem bit lang. Har maskinen bare fire bit til rådighet, faller den øverste bort — det heter overflyt (engelsk overflow), og resultatet blir da 00012=10001_{2} = 1 i stedet for 17.

Løkke 3 — Negative tall og desimaltall (~12 min)

Så langt har alle tall vært positive. Men et program må kunne holde 15-15 like godt som 1515, og maskinvaren har ingen minusknapp — bare nuller og enere.

Løsningen heter toer-komplement, og den er elegant nok til å være verdt de ti minuttene: den lar prosessoren bruke nøyaktig samme addisjonskrets på negative tall som på positive.

— naturlig pausepunkt om du deler kapitlet over to økter er etter denne løkka —

Fortegnsbit

I et fortegnet binærtall er det venstre bitet fortegnsbitet:

- 00 betyr at tallet er positivt eller null.
- 11 betyr at tallet er negativt.

Merk at fortegnsbitet ikke er «en minusknapp» ved siden av tallet. Det er det øverste bitet i selve tallet, og i toer-komplement har det også en tallverdi — en negativ en.

Et fortegnet 8-bits tall dekker 128-128 til 127127. Et fortegnsløst 8-bits tall dekker 00 til 255255. Samme åtte bit, to ulike tolkninger — og det er alltid programmet, ikke bitene, som avgjør hvilken som gjelder.

Toer-komplement

Den standardmåten datamaskiner lagrer negative heltall på.

Slik lager du toer-komplementet av et negativt tall, i tre steg:

1. Skriv tallverdien binært med riktig antall bit.
2. Inverter alle bit — bytt hver 00 med 11 og hver 11 med 00.
3. Legg til 1.

Eksempel, 5-5 med 8 bit:

StegResultat
1. 55 binært0000010100000101
2. invertert1111101011111010
3. pluss 11111101111111011

Altså er 5=111110112-5 = 11111011_{2} i 8-bits toer-komplement.
Den andre veien — fra bitmønster til tall — bruker samme oppskrift: er fortegnsbitet 11, inverter og legg til 1, og sett minus foran. 1111000111110001 inverteres til 0000111000001110, pluss 1 gir 00001111=1500001111 = 15, altså er tallet 15-15.
Hvorfor akkurat dette? Fordi 5+(5)5 + (-5) da blir null helt av seg selv i vanlig binæraddisjon: 00000101+11111011=10000000000000101 + 11111011 = 100000000, og den niende biten faller utenfor de åtte. Prosessoren trenger dermed ingen egen subtraksjonskrets.

Tallområde med nn bit
TolkningMed 8 bitGenerelt med nn bit
Fortegnsløs00 til 25525500 til 2n12^{n} - 1
Fortegnet (toer-komplement)128-128 til 1271272n1-2^{n-1} til 2n112^{n-1} - 1

Legg merke til asymmetrien: det finnes ett negativt tall mer enn positivt, fordi null tar opp én av de «positive» plassene. Med 8 bit er 128-128 lovlig, men +128+128 er det ikke.
Dette er en fast eksamensfelle: alternativer som sier «127-127 til 127127» eller «128-128 til 128128» ser like riktige ut, og begge er gale.
📝Oppgave 5
Eksamensnivå, sjanger A

Bitmønsteret 1111000111110001 tolkes som et 8-bits fortegnet heltall i toer-komplement. Hvilket tall er det?

- a) 15-15
- b) 14-14
- c) 113-113
- d) 241241

Flyttallsrepresentasjon

Desimaltall lagres som flyttall (engelsk floating point), etter samme idé som standardform i matematikken: 3,25-3{,}25 skrives som fortegn, siffer og eksponent.

Et flyttall består av tre felt:

FeltHva det holder
Fortegnett bit: 00 for positivt, 11 for negativt
Eksponenthvor komma skal flyttes, altså størrelsesordenen
Mantisseselve sifrene i tallet

To konsekvenser som TDT4110 spør om:
- Flyttall er tilnærminger. De fleste desimaltall kan ikke skrives eksakt med et endelig antall binære sifre, like lite som 1/31/3 kan skrives eksakt med endelig mange desimaler. Derfor gir 0,1+0,20{,}1 + 0{,}2 i en datamaskin ikke nøyaktig 0,30{,}3.
- Flyttall har begrenset presisjon, ikke begrenset område. De rekker svært langt opp og ned i størrelsesorden, men holder bare et bestemt antall gjeldende sifre.
Du skal ikke kunne regne ut et flyttall bit for bit i dette emnet — men du skal kunne de tre feltene og vite hvorfor flyttall er upresise.

Løkke 4 — Tegn: ASCII og Unicode (~8 min)

Bokstaven A er ikke lagret som en bokstav noe sted. Den er lagret som tallet 65, og det er en avtale — en tegnkoding — som sier at 65 skal vises som A.

Hele forskjellen mellom de to store tegnkodingene er hvor mange tegn avtalen dekker.

ASCII
ASCII (American Standard Code for Information Interchange) er den eldste alminnelige tegnkodingen. Den bruker 7 bit og dekker 27=1282^{7} = 128 tegn: de engelske bokstavene store og små, sifrene, skilletegnene og noen styretegn.

ASCII har ingen norske bokstaver. æ, ø og å finnes ikke i settet.

Verdier verdt å kjenne: A er 65, a er 97, og sifferet 0 er 48. Merk at stor og liten bokstav ligger nøyaktig 32 fra hverandre.

Utvidet ASCII (ISO-8859-1)
Utvidet ASCII bruker 8 bit — én byte — og dekker dermed 28=2562^{8} = 256 tegn. De første 128 er de samme som i vanlig ASCII; de neste 128 er tatt i bruk til nasjonale tegn.

Den vanligste vestlige varianten heter ISO-8859-1 (også kalt Latin-1), og den har med æ, ø, å, é og andre vesteuropeiske tegn.

Én byte per tegn er hele poenget: en tekstfil på 1 000 tegn tar nøyaktig 1 000 byte.

Begrensningen er like tydelig: 256 plasser rekker ikke til gresk, kyrillisk, arabisk, kinesisk og alle de andre skriftsystemene samtidig. Det er problemet Unicode løser.

Unicode
Unicode er tegnkodingen som gir ett unikt nummer til hvert tegn i alle verdens skriftsystemer — over 100 000 tegn, med plass til langt flere.

Det avgjørende for eksamen er at Unicode ikke har fast antall byte per tegn. Selve nummeret lagres etter en av flere lagringsformer, og den vanligste er UTF-8:

TegnAntall byte i UTF-8
A (vanlig ASCII-tegn)1
æ, ø, å2
kinesiske tegn3
mange emoji4

UTF-8 er laget slik at ren engelsk tekst tar nøyaktig like mye plass som i ASCII, mens andre skriftsystemer koster mer. «Worst case» for ett tegn er 4 byte.
Den nære distraktoren: at Unicode alltid bruker 16 bit per tegn. Det gjelder en bestemt lagringsform (UTF-16) for en del av tegnene, ikke Unicode i sin alminnelighet.
✏️Eksempel 3: Et gjennomgått flervalg om tegnkoding
Hvilken påstand om ASCII og Unicode er riktig?

- a) Utvidet ASCII bruker 8 bit per tegn, mens Unicode bruker 16 bit per tegn
- b) Utvidet ASCII bruker 8 bit per tegn, mens Unicode bruker fra 1 til 4 byte
- c) Utvidet ASCII bruker 16 bit per tegn, mens Unicode bruker 8 bit per tegn
- d) Begge bruker 8 bit per tegn, men Unicode dekker flere skriftsystemer

Riktig svar: b)

Utvidet ASCII er én byte, altså 8 bit, med 256 plasser. Unicode i UTF-8-form bruker mellom 1 og 4 byte per tegn, avhengig av hvilket tegn det er.

- Alternativet med 16 bit for Unicode er den nære distraktoren, og den er farlig fordi den er delvis sann: lagringsformen UTF-16 bruker 16 bit for en stor del av tegnene. Men Unicode i seg selv har ingen fast bredde, og den vanligste formen er UTF-8.
- Alternativet som snur de to er lett å eliminere så snart du husker at ASCII er den eldste og enkleste.
- Alternativet der begge bruker 8 bit motsier seg selv: med bare 256 plasser kan du umulig dekke flere skriftsystemer enn utvidet ASCII gjør.

Metoden i praksis: det siste alternativet kan strykes uten faktakunnskap, bare ved å se at påstanden ikke henger sammen. Det er verdt å lete etter slike i teoridelen — de finnes i nesten hvert eneste sett, og de gjør en 25 %-gjetning til en 33 %-gjetning gratis.

📝Oppgave 6
Sjanger A

Hvor mange tegn kan kodes med utvidet ASCII (ISO-8859-1)?

- a) 128 tegn
- b) 255 tegn
- c) 256 tegn
- d) 65 536 tegn

Løkke 5 — Bilder, farger og lagringsstørrelse (~10 min)

Et bilde på skjermen er et rutenett av små fargeflekker. Hver flekk heter en piksel, og hver piksel er lagret som et tall som beskriver fargen.

Ganger du antall piksler med antall bit per piksel, har du bildets størrelse i bit. Deler du på 8, har du den i byte. Det er hele regnestykket — og det å glemme den divisjonen er en av de faste eksamensfellene.

Piksel og oppløsning

En piksel (av engelsk picture element) er ett punkt i et bilde — den minste flaten som kan ha sin egen farge.

Oppløsningen er antall piksler i bredden ganger antall i høyden: 1920×10801920 \times 1080 betyr 1 920 piksler bortover og 1 080 nedover, altså 20736002\,073\,600 piksler i alt.

Merk at oppløsningen ikke sier noe om hvor stort bildet er i centimeter. Den sier bare hvor mange punkter det består av.

Bitdybde (bit per piksel)
Bitdybden er hvor mange bit som brukes til å lagre fargen til én piksel. Den bestemmer hvor mange forskjellige farger bildet kan ha — etter den samme 2n2^{n}-regelen som ellers:

Bit per pikselAntall fargerTypisk bruk
12rent svart-hvitt
8256gråtoner eller en fargepalett
2416 777 216fullfarge, «true color»

24 bit er tallet du møter oftest, fordi det er 8 bit til hver av de tre grunnfargene i RGB.
RGB
RGB står for rød, grønn og blå. Fargen til en piksel lages ved å blande de tre, hver med sin styrke fra 00 til 255255 — altså 8 bit hver, 24 bit til sammen.

Dette er additiv fargeblanding: den gjelder lys, altså skjermer. Alle tre på maksimum gir hvitt; alle tre på null gir svart.

224=167772162^{24} = 16\,777\,216 farger, som er langt flere enn øyet kan skille.

CMYK
CMYK står for cyan, magenta, gul (yellow) og svart (key). Dette er fargemodellen for trykk på papir.

CMYK er subtraktiv: blekket trekker fra det hvite lyset som papiret reflekterer. Alle fargene på maksimum gir nesten svart; ingen farge gir papirets hvite.

Den svarte kanalen er med fordi blanding av de tre andre gir en gråbrun tone i praksis, og fordi ren svart trykkfarge er langt billigere enn tre lag blekk.

Regelen for eksamen: RGB for skjerm og lys, CMYK for trykk og blekk.

Webfargekode (hex)

En webfargekode skriver en RGB-farge som seks heksadesimale sifre etter en firkant: #RRGGBB.

Hvert par er én av grunnfargene, med to hex-sifre som dekker 00 til 255255 — altså akkurat én byte.

Eksempel, #FF8000:

ParHexDesimaltBetydning
RRFF255rød på maksimum
GG80128grønn på halv styrke
BB000ingen blå

Det gir en oransje farge. Her ser du hvorfor hex er praktisk: seks tegn i stedet for 24 nuller og enere, og hvert par lar seg lese direkte som en verdi mellom 0 og 255.

📜Regnemetode: bildestørrelse
byte=antall piksler×bit per piksel8\text{byte} = \frac{\text{antall piksler} \times \text{bit per piksel}}{8}

Tre steg, alltid de samme:

1. Antall piksler: bredde ×\times høyde.
2. Ganger bitdybden. Nå har du størrelsen i bit.
3. Del på 8. Nå har du den i byte.

Eksempel: et bilde på 100×50100 \times 50 piksler med 24 bit per piksel.

100×50=5000 piksler100 \times 50 = 5\,000 \text{ piksler}
5000×24=120000 bit5\,000 \times 24 = 120\,000 \text{ bit}
120000:8=15000 byte120\,000 : 8 = 15\,000 \text{ byte}

Snarveien er å regne bit per piksel om til byte per piksel først: 24 bit er 3 byte, så 5000×3=150005\,000 \times 3 = 15\,000. Samme svar, ett regnesteg mindre, og ingen mulighet for å glemme divisjonen.

Fellen — feilkode #12: å stoppe etter steg 2 og svare 120 000. Svaret er da åtte ganger for stort. Spør alltid: ba oppgaven om bit eller om byte?

Merk: formelen gjelder ukomprimert bilde. Et JPEG-bilde av samme oppløsning er langt mindre, fordi det er komprimert — se kap. 8.5.

✏️Eksempel 4: Et regnespørsmål på eksamensnivå
Et ukomprimert bilde er 640×480640 \times 480 piksler med 24 bit per piksel. Hvor mange byte trengs?

- a) 307 200 byte
- b) 921 600 byte
- c) 7 372 800 byte
- d) 15 360 byte

Riktig svar: b)

Med snarveien: 24 bit er 3 byte per piksel.

640×480=307200 piksler640 \times 480 = 307\,200 \text{ piksler}
307200×3=921600 byte307\,200 \times 3 = 921\,600 \text{ byte}

Den lange veien gir det samme: 307200×24=7372800307\,200 \times 24 = 7\,372\,800 bit, og 7372800:8=9216007\,372\,800 : 8 = 921\,600 byte.

De tre gale alternativene er de tre klassiske feilene, og legg merke til at alle tre er tall du møter underveis i din egen utregning:

- 307 200 er antall piksler. Man har glemt å gange med bitdybden i det hele tatt.
- 7 372 800 er svaret i bit. Man har glemt å dele på 8 — feilkode #12 i sin reneste form, og den vanligste feilen på denne oppgavetypen.
- 15 360 er 640×24640 \times 24. Man har glemt høyden.

Sensorpoeng og strategi: når tre av fire alternativer er mellomresultater fra din egen utregning, hjelper det ikke å «kjenne igjen et tall du fikk». Skriv de tre stegene under hverandre på kladden, og sett en ring rundt det siste. Det tar femten sekunder og er forskjellen på et sikkert poeng og en 25 %-gjetning.

📝Oppgave 7
Sjanger A

Et ukomprimert gråtonebilde er 800×600800 \times 600 piksler med 8 bit per piksel. Hvor mange byte trengs?

- a) 60 000 byte
- b) 3 840 000 byte
- c) 1 440 000 byte
- d) 480 000 byte

Lagringsprefikser: 10310^{3} mot 2102^{10}

Prefiksene brukes i to betydninger, og forskjellen er en fast eksamensfelle:

PrefiksDesimalt (10310^{3}-basert)Binært (2102^{10}-basert)Avvik
kilo10001\,00010241\,024 (kibi, KiB)2,4 %
mega10000001\,000\,00010485761\,048\,576 (mebi, MiB)4,9 %
giga10910^{9}10737418241\,073\,741\,824 (gibi, GiB)7,4 %

Diskprodusenter bruker den desimale betydningen, mens mange operativsystemer viser den binære. Det er derfor en «500 GB»-disk vises som omtrent 465 GB i maskinen — ingen har jukset, de to bruker bare hvert sitt prefikssystem.
På eksamen: les hva oppgaven oppgir. Står det «1 kB == 1 000 byte», bruk det. Er det ikke oppgitt og tallene er toerpotenser, er den binære betydningen ment.

Metadata
Metadata er data om dataene — opplysninger som følger med en fil uten å være innholdet i den.

Eksempler: et bildes oppløsning, bitdybde og opptakstidspunkt; en tekstfils navn, størrelse og tegnkoding; en lydfils artist og lengde.

Metadata er grunnen til at en bildefil alltid er litt større enn regnestykket i formelen over tilsier: filen inneholder både pikslene og en beskrivelse av hvordan de skal tolkes.

Uten metadata ville en bildefil bare vært en lang rekke tall som ingen visste hvordan skulle brettes ut til et rutenett.

📝Oppgave 8
Sjanger A

Hva er 2F162F_{16} i binært og i desimalt?

- a) 0010111100101111 og 47
- b) 0010111100101111 og 63
- c) 1111001011110010 og 47
- d) 0010011100100111 og 39

📝Oppgave 9
Sjanger A

Webfargekoden #00FF00 beskriver hvilken farge?

- a) Ren rød
- b) Ren blå
- c) Ren hvit
- d) Ren grønn

📝Oppgave 10
Eksamensnivå, sjanger A

En tekstfil på 2 000 tegn er lagret i utvidet ASCII (ISO-8859-1). En annen fil har de samme 2 000 tegnene i UTF-8, men 300 av tegnene er æ, ø eller å. Hvor store er de to filene?

- a) 2 000 byte og 2 000 byte
- b) 2 000 byte og 2 600 byte
- c) 2 000 byte og 2 300 byte
- d) 16 000 byte og 18 400 byte

Begreps- og enhetsliste

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.

Skolesaga er en uavhengig læringsressurs og er ikke tilknyttet eller godkjent av Norges teknisk-naturvitenskapelige universitet. Dette er ikke offisielt studiemateriell. Les mer.