1.1 Tallsystemer og direkte konvertering
Binær, oktal, heksadesimal og desimal — og den raske **direkte** konverteringen via 3-bits (oktal) og 4-bits (hex) grupper, uten omveien via desimal.
Nivå 1 — dette må sitte. Konvertering har én entydig fasit, kan drilles til feilfrihet, og koster deg under et minutt per oppgave når teknikken sitter. Det er de billigste poengene i hele faget.
Slik kommer den: oftest som svarform F1 («velg ett eller flere alternativer» — flere av tallene kan være like) eller F4 (nedtrekksmeny med ett svar per delspørsmål).
Det sensorveiledningen fra 2023 fremhever: konverter direkte mellom binær og oktal eller heksadesimal — ikke gå veien om titallssystemet. Omveien er tregere og gir flere steder å regne feil. Dette kapitlet lærer deg den direkte veien først, og bruker divisjonsmetoden bare der du faktisk trenger den.
Neste kapittel er drillen: kap. 1.2 roterer alle variantene til de sitter.
Forkunnskaper — sist du var her
Dette kapitlet kan leses uten forkunnskaper. Du trenger bare å kunne gange og dele med små tall.
Tre ting du møter med én gang, og som forklares fortløpende:
- Bit — ett siffer som er 0 eller 1.
- Base — hvor mange ulike sifre tallsystemet har (10 i vårt vanlige system, 2 i det binære).
- Plassverdi — at sifferets posisjon bestemmer hvor mye det er verdt.
Har du aldri sett binære tall før, er Tallsystemer og datarepresentasjon en roligere inngang. Du trenger den ikke — alt du skal kunne, står under.
Løkke 1 — Plassverdi og base (~12 min)
Se på tallet 407. Du leser det uten å tenke: fire hundre og sju. Det du egentlig gjør, er å gange hvert siffer med en vekt: 4·100 + 0·10 + 7·1. Vektene er potenser av ti, og de vokser fra høyre mot venstre.
Alt et annet tallsystem gjør, er å bytte ut tiet. I det binære systemet er vektene 1, 2, 4, 8, 16 og så videre. I det heksadesimale er de 1, 16, 256. Reglene er ellers identiske.
Det er derfor du allerede kan konvertere: du kan plassverdiregelen fra barneskolen. Du har bare brukt den på ett tall.
Et tallsystem der et siffers verdi bestemmes av posisjonen det står i, ikke bare av selve sifferet. Verdien av hele tallet er summen av hvert siffer ganget med sin plassverdi.
I 407₁₀ er det bakerste 7-tallet verdt 7, mens 4-tallet er verdt 400 — samme sifferstørrelse ville betydd noe annet på en annen plass.
Den faste feilslutningen: å tro at binære, oktale og heksadesimale tall følger andre regler enn desimaltall. De følger nøyaktig samme regel, med en annen base.
Antallet ulike sifre et tallsystem bruker, og samtidig faktoren mellom to nabo-plassverdier.
Base 10 bruker sifrene 0–9 og har vektene 1, 10, 100. Base 2 bruker 0 og 1 og har vektene 1, 2, 4, 8. Base 8 bruker 0–7. Base 16 bruker 0–9 pluss A–F.
Merk sammenhengen: et system med base har alltid nøyaktig ulike sifre, og det største sifferet er . Ser du et 8-tall i et oktalt tall, er det skrevet feil.
Ett enkelt symbol i et tall. Base 2 har to sifre (0 og 1), base 8 har åtte (0–7), base 16 har seksten (0–9 og A–F).
Skillet mellom siffer og tall er verdt å holde fast på: 10 er to sifre, men verdien er 2 i base 2, 8 i base 8, 10 i base 10 og 16 i base 16. Uten basen betyr sifferrekka ingenting.
Skrivemåten som gjør det utvetydig hvilken base et tall skal leses i: basen skrives som et lite tall etter sifrene.
1101₂ er binært, 774₈ er oktalt, 42₁₀ er desimalt, 33₁₆ er heksadesimalt. I datateknologi skrives heksadesimale tall like ofte med prefikset 0x: 0x33.
Denne notasjonen brukes gjennomgående på eksamen, og fella er å overse subskriptet: 11 uten subskript kan være tre, ni, elleve eller sytten.
Ett binært siffer: 0 eller 1. Ordet er en sammentrekning av binary digit.
Med bit kan du skrive forskjellige verdier — 8 bit gir 256 verdier, fra 0 til 255.
Den faste feilslutningen: å blande bit og byte. En byte er åtte bit, og forskjellen på de to er en faktor 8 — den samme faktoren som feller flest i overføringstidsoppgavene i kap. 4.3.
En gruppe på åtte bit. Den vanligste enheten for å måle datamengder, og standardstørrelsen når eksamen ber deg tolke et bitmønster.
Én byte skrives som nøyaktig to heksadesimale sifre (0xFF = åtte ettall). Oktalt trengs tre sifre, men da bruker det øverste bare to av sine tre bit — åtte går ikke opp i treergrupper. Derfor er heksadesimal den naturlige kortformen for byte-verdier.
Filstørrelser oppgis i byte, mens overføringsrater oppgis i bit per sekund. Å holde de to fra hverandre er felle #2 i registeret.
Hva er 110101110₂ i titallssystemet?
Skriv vektene over bitene, fra høyre mot venstre: 1, 2, 4, 8, 16, 32, 64, 128, 256.
bit: 1 1 0 1 0 1 1 1 0 vekt: 256 128 64 32 16 8 4 2 1Legg sammen vektene der bitet er 1:
256 + 128 + 32 + 8 + 4 + 2 = 430
Svar: 110101110₂ = 430₁₀.
Legg merke til at du aldri trenger å regne med nullene. Plassverdimetoden er å plukke ut ettallene og summere vektene deres — det er alt.
(Innsteg — plassverdi.) Regn om til titallssystemet.
a) 1011₂
b) 1101₂
c) 11010₂
Løkke 2 — Direkte mellom binær og oktal (~10 min)
Nå kommer teknikken som gjør deg rask. Åtte er 2³. Det betyr at tre bit dekker nøyaktig like mange verdier som ett oktalt siffer: begge har åtte muligheter, 0 til 7.
Derfor kan du oversette gruppe for gruppe, uten å regne ut hva hele tallet er verdt. Det er den direkte veien, og det er den sensorveiledningen fra 2023 anbefaler.
Fra oktal til binær: skriv hvert oktalsiffer som tre bit.
Oversettelsestabellen er hele apparatet:
| Bit | Siffer | Bit | Siffer |
|---|---|---|---|
000 | 0 | 100 | 4 |
001 | 1 | 101 | 5 |
010 | 2 | 110 | 6 |
011 | 3 | 111 | 7 |
Hvorfor det virker: hver gruppe på tre bit representerer en vekt som er en potens av 8. Grupperingen er bare en omskriving av plassverdiregelen — ingen informasjon går tapt, og ingen omregning skjer underveis.
Grupper alltid fra høyre. Grupperer du fra venstre, forskyver du alle vektene, og svaret blir feil.
Skriv 110101110₂ som oktalt tall. Bruk den direkte metoden.
Del i grupper på tre fra høyre:
110 101 110
6 5 6Ni bit gir nøyaktig tre grupper, så det trengs ingen ledende nuller.
Svar: 110101110₂ = 656₈.
Kontroll mot eksempel 1. Vi vet at tallet er 430 i titallssystemet. Sjekker vi det oktale svaret: 6·64 + 5·8 + 6·1 = 384 + 40 + 6 = 430. Det stemmer.
Legg merke til hvor mye kortere den direkte veien var. Kontrollen tok tre multiplikasjoner; selve konverteringen tok tre oppslag.
Konverter direkte, uten å gå via titallssystemet.
a) 1011011₂ til oktal.
b) 374₈ til binær.
En medstudent konverterer 100111010₂ til oktal ved å gruppere fra venstre: 100 111 010 gir 4, 7, 2. Han får 472₈. En annen grupperer fra høyre og får samme svar. Forklar hvorfor de fikk samme svar her, og hvorfor metoden hans likevel er farlig.
Løkke 3 — Direkte mellom binær og heksadesimal (~10 min)
Samme idé, ny gruppestørrelse. Seksten er 2⁴, så fire bit dekker nøyaktig ett heksadesimalt siffer. Fire bit har et eget navn: en nibble.
Den eneste nye tingen er at base 16 trenger seks sifre til utover 0–9. Dem har man lånt fra alfabetet.
En gruppe på fire bit. Navnet er et ordspill på byte — en nibble er en «liten bit» av en byte, og det går to nibbler på én byte.
En nibble tilsvarer nøyaktig ett heksadesimalt siffer, og kan ha 16 verdier: 0000 til 1111, altså 0 til 15.
Dette er grunnen til at byte-verdier nesten alltid skrives heksadesimalt: én byte blir nøyaktig to sifre, uten rest.
Base 16 trenger seksten sifre, men vi har bare ti tallsymboler. De seks siste er derfor bokstaver:
| Siffer | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| Verdi | 10 | 11 | 12 | 13 | 14 | 15 |
| Nibble | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Den faste feilen er å forskyve rekka og tro at A er 11 fordi A er den første bokstaven. A er 10, fordi verdiene 0–9 allerede er brukt opp av tallsymbolene.
Nyttig holdepunkt: F er 15, altså
1111 — alle fire bit satt.Skrivemåten som markerer at et tall er heksadesimalt: 0x foran sifrene. 0x1AE betyr det samme som 1AE₁₆.
Prefikset kommer fra programmeringsspråket C og brukes i hele datateknologien — i minneadresser, fargekoder og maskinkode.
Den faste feilslutningen: å lese 0x som en del av verdien. Nullen og x-en er bare et merke, akkurat som subskriptet.
Fra heksadesimal til binær: skriv hvert siffer som fire bit.
| Nibble | Siffer | Nibble | Siffer |
|---|---|---|---|
0000 | 0 | 1000 | 8 |
0001 | 1 | 1001 | 9 |
0010 | 2 | 1010 | A |
0011 | 3 | 1011 | B |
0100 | 4 | 1100 | C |
0101 | 5 | 1101 | D |
0110 | 6 | 1110 | E |
0111 | 7 | 1111 | F |
Nøkkelen er å ikke blande gruppestørrelsene: tre bit for oktal, fire bit for heksadesimal. Bytter du om, får du et tall som ser plausibelt ut, men er feil — og på en eksamen med minuspoeng er «plausibelt, men feil» det dyreste svaret som finnes.
110101110₂ heksadesimalt.b) Skriv 0x3B7 binært, og finn verdien i titallssystemet.
1 1010 1110. Den venstre gruppa mangler tre bit, så fyll på: 0001 1010 1110.0001 1010 1110
1 A ESvar: 110101110₂ = 0x1AE.
Kontroll mot eksempel 1, der vi fant 430: 1·256 + 10·16 + 14 = 256 + 160 + 14 = 430. Stemmer.
b) Hvert siffer blir en nibble: 3 → 0011, B → 1011, 7 → 0111.
3 B 7
0011 1011 0111Svar: 0x3B7 = 001110110111₂, normalt skrevet 1110110111₂.
Verdien: 3·256 + 11·16 + 7 = 768 + 176 + 7 = 951.
Legg merke til hvor lite arbeid del b) var: tre oppslag i tabellen. Hadde du gått via titallssystemet, måtte du først regnet ut 951 og deretter delt på 2 ti ganger.
Konverter direkte.
a) 11111100₂ til heksadesimal.
b) 0x5C til binær.
Skriv 2AF₁₆ både binært og oktalt. Gå ikke via titallssystemet i noen av stegene.
Løkke 4 — Fra titallssystemet: gjentatt divisjon (~8 min)
Ti er ingen potens av to. Derfor finnes det ingen grupperingssnarvei mellom base 10 og base 2 — her må du regne.
Metoden er mekanisk: del gjentatte ganger på basen og les restene baklengs.
For å skrive et desimaltall i base :
1. Del på . Noter resten.
2. Fortsett med kvotienten: del den på , noter resten.
3. Gjenta til kvotienten er 0.
4. Les restene nedenfra og opp — det er tallet i base .
Hvorfor restene leses baklengs: den første resten du får, er verdien på plassen med vekt 1, altså det bakerste sifferet. Den siste resten hører til den høyeste vekten.
Snarvei for oktal og heksadesimal: konverter til binært først, og grupper. Å dele gjentatte ganger på 16 i hodet er mye mer feilutsatt enn å dele på 2 og deretter slå opp i nibble-tabellen.
Skriv 205₁₀ binært, oktalt og heksadesimalt.
| Steg | Regnestykke | Kvotient | Rest |
|---|---|---|---|
| 1 | 205 ÷ 2 | 102 | 1 |
| 2 | 102 ÷ 2 | 51 | 0 |
| 3 | 51 ÷ 2 | 25 | 1 |
| 4 | 25 ÷ 2 | 12 | 1 |
| 5 | 12 ÷ 2 | 6 | 0 |
| 6 | 6 ÷ 2 | 3 | 0 |
| 7 | 3 ÷ 2 | 1 | 1 |
| 8 | 1 ÷ 2 | 0 | 1 |
Les restene nedenfra og opp:
11001101.205₁₀ = 11001101₂.Oktalt og heksadesimalt — nå grupperer vi bare.
oktal: 011 001 101 -> 3 1 5 hex: 1100 1101 -> C D205₁₀ = 315₈ = 0xCD.Kontroll:
3·64 + 1·8 + 5 = 192 + 8 + 5 = 205, og 12·16 + 13 = 192 + 13 = 205. Begge stemmer.Merk hvor lite ekstraarbeid de to siste konverteringene var. Én divisjonsrekke, to grupperinger — aldri to divisjonsrekker.
Skriv 137₁₀ binært, oktalt og heksadesimalt. Bruk divisjon bare én gang.
Løkke 5 — Eksamensnivå: «hvilke av disse er like?» (~10 min)
Den vanligste innpakningen på eksamen er ikke «konverter dette tallet». Det er en liste med tall skrevet i ulike baser, og spørsmålet: hvilke av dem er like?
Formen er svarform F1: flere alternativer kan være riktige samtidig. Under negativ poenggiving betyr det at du må vurdere hvert alternativ for seg — og kunne si hvorfor de gale er gale.
Oppskriften er alltid den samme: bring alt til én felles base før du sammenligner. Hvilken base du velger, er opp til deg, men binær er ofte lettest når kandidatene er oktale og heksadesimale.
Svarform F1: kryss av alle alternativene som er lik 101101₂.
a) 55₈
b) 0x2D
c) 45₁₀
d) 0x2B
Først: hva er 101101₂? Vi trenger ikke titallsverdien for å sammenligne med a) og b), men den trengs for c). Vektene 32, 8, 4, 1 er satt: 32 + 8 + 4 + 1 = 45.
a) Riktig. Grupper 101101 i treere fra høyre: 101 101 gir 5 og 5, altså 55₈. Alternativet stemmer.
b) Riktig. Grupper i firere: 10 1101 fylles til 0010 1101, som gir 2 og D. Altså 0x2D. Stemmer.
c) Riktig. Titallsverdien er 45, som regnet ut over.
d) Galt. 0x2B er 0010 1011₂, altså 101011₂. Sammenlignet med 101101₂ er de to bitene med vekt 2 og 4 byttet om. I titallssystemet: 2·16 + 11 = 43, ikke 45. Alternativet ligger to unna og er nettopp derfor en god distraktor — det ser riktig ut hvis du slurver med rekkefølgen i nibbelen.
Fasit: a, b og c. Tre av fire alternativer var riktige.
Metanotat. Dette er den viktigste vanen i faget: du fant ikke «det riktige svaret» — du vurderte fire påstander og begrunnet hver. Hadde du krysset av kun a) fordi du sluttet å lese, ville du fått ett av tre poeng. Hadde du krysset av alt, ville du fått null.
Kryss av alle alternativene som er lik 10011100₂, og begrunn hvert av de fire.
a) 0x4E
b) 0x9C
c) 156₁₀
d) 234₈
En variant: tallsystemer med egne symboler
Noen ganger snus oppgaven på hodet: du får et system med en uvanlig base og egne symboler, og skal vise at du forstår prinsippet, ikke bare de fire vanlige basene.
Behandle det nøyaktig som ethvert annet plassverdisystem: finn ut hvilken verdi hvert symbol har, og bruk plassverdiregelen.
Et plassverdisystem med en oppgitt base og et oppgitt sett symboler, der symbolene ikke nødvendigvis er de vanlige sifrene.
Eksempel: base 6 med symbolene 0, 1, 2, A, B, C, der A = 3, B = 4 og C = 5. Da er BA2₆ lik 4·36 + 3·6 + 2 = 144 + 18 + 2 = 164.
Alt fungerer som før: det største symbolet har verdien base minus 1, vektene er potenser av basen, og gjentatt divisjon virker for veien tilbake. Den faste feilen er å lete etter en snarvei — den finnes bare når basen er en potens av to.
Et tallsystem har base 6 og bruker symbolene 0, 1, 2, A, B, C, der A = 3, B = 4 og C = 5.
a) Hvilken verdi har CAB₆ i titallssystemet?
b) Skriv 100₁₀ i dette systemet.
Fire feil står for nesten alle bommene i denne sjangeren.
1. Å regne via titallssystemet når direkte gruppering er raskere (felle #6 — omveien via desimal). Skal du fra oktal til heksadesimal, går veien gjennom binærtallet, ikke gjennom desimaltallet. Omveien er ikke gal, bare treg — og hvert ekstra regnesteg er et nytt sted å bomme.
2. Feil gruppestørrelse. Tre bit for oktal, fire for heksadesimal. Bytter du om, får du et tall som ser riktig ut. Holdepunkt: oktal har åtte sifre og 8 = 2³; heksadesimal har seksten og 16 = 2⁴.
3. Å gruppere fra venstre. Gruppene skal telles fra høyre, slik at det er den venstre gruppa som eventuelt må fylles opp med nuller. Grupperer du fra venstre, forskyver du alle vektene — se oppgave 3.
4. Å blande de heksadesimale sifferverdiene. A er 10, ikke 11. F er 15, ikke 16. Fest det i minnet via F = 1111₂: alle fire bit satt er 15, ikke 16 — 16 krever fem bit.
Begrepsbank til eksamen
Begrepsbanken er flashcard- og repetisjonsstoff — den gjentar det du nettopp har lest. Hopp trygt over ved førstegangslesing; tidsanslaget for kapitlet gjelder kjernestoffet.
Plassverdisystemet med base 2. Sifrene er 0 og 1, og vektene er 1, 2, 4, 8, 16, 32 og videre oppover.
Dette er systemet maskinvaren faktisk arbeider i: hvert siffer svarer til en fysisk tilstand som er på eller av.
Skrivemåte: 1101₂. Å lese 1101 uten subskript som «ett tusen ett hundre og én» er den vanligste startfeilen.
Plassverdisystemet med base 8. Sifrene er 0 til 7, og vektene er 1, 8, 64, 512.
Oktale tall brukes som kortform for bitmønstre fordi tre bit går nøyaktig opp i ett oktalsiffer.
Ser du et 8-tall eller 9-tall i et tall merket med subskript 8, er tallet skrevet feil — det største lovlige sifferet er 7.
Plassverdisystemet med base 16. Sifrene er 0–9 og A–F, og vektene er 1, 16, 256, 4096.
Dette er standardkortformen for byte-verdier, minneadresser og fargekoder, fordi én byte blir nøyaktig to sifre.
Skrivemåte: 0x1AE eller 1AE₁₆.
Plassverdisystemet med base 10 — det vi bruker til daglig. Sifrene er 0 til 9, og vektene er 1, 10, 100.
I datateknologi er dette systemet ofte et mellomledd du skal unngå: siden 10 ikke er en potens av 2, finnes ingen grupperingssnarvei mellom base 10 og base 2.
Du trenger titallssystemet når oppgaven oppgir eller ber om en desimalverdi — ikke som mellomstasjon mellom to andre baser.
Verdien én enhet på en gitt sifferplass er verdt: basen opphøyd i posisjonen, talt fra høyre med start på 0.
I base 2 er vektene 1, 2, 4, 8, 16, 32, 64, 128. I base 16 er de 1, 16, 256, 4096.
Å kunne toerpotensene opp til 128 utenat er den enkleste enkeltinvesteringen i hele faget: den brukes i konvertering, i to-er komplement, i cache-regning og i subnetting.
Bitet lengst til venstre i et binærtall — det med den høyeste vekten.
I en byte er dette bitet i posisjon 7, med vekten 128. Det er også bitet som i kap. 1.3 blir fortegnsbit når byten tolkes med fortegn.
Forkortelsen MSB brukes ofte, av engelsk most significant bit.
Bitet lengst til høyre i et binærtall — det med vekten 1.
Det er dette bitet som avgjør om tallet er partall eller oddetall, og det er den første resten du får når du deler på 2 i divisjonsmetoden.
Forkortelsen LSB brukes ofte, av engelsk least significant bit.
Nuller helt til venstre i et tall, som ikke endrer verdien: 0011₂ og 11₂ er begge lik 3.
De er likevel nyttige når du grupperer: fyll den venstre gruppa opp til full størrelse med ledende nuller, så blir oversettelsen entydig.
Ledende nuller er også grunnen til at en byte alltid skrives med åtte bit selv om verdien er liten — 00000101₂ viser at tallet ligger i en byte.
Regelen om at bitgrupper alltid telles fra det minst signifikante bitet og oppover, slik at en eventuell ufullstendig gruppe havner til venstre.
Grunnen er at vektene bygges opp fra høyre. Starter du grupperingen til venstre, forskyves alle vektene, og resultatet blir feil for alle tall der antall bit ikke går opp i gruppestørrelsen.
Dette er den vanligste enkeltfeilen i konvertering — se oppgave 3 for et regnestykke som viser hvor galt det går.
Metoden der du oversetter mellom to baser ved å gruppere bit, uten å regne ut tallets verdi i titallssystemet underveis.
Den virker mellom base 2 og enhver base som er en potens av 2: tre bit per oktalsiffer, fire bit per heksadesimalt siffer.
Sensorveiledningen fra 2023 fremhever denne metoden eksplisitt som raskere og mindre feilutsatt enn omveien via titallssystemet.
Å konvertere fra base A til base B ved først å regne ut tallets desimalverdi og deretter dele gjentatte ganger.
Metoden gir riktig svar, men krever mange flere regnesteg enn direkte gruppering — og hvert steg er et sted å bomme. Dette er felle #6 i registeret.
Bruk den bare når titallssystemet faktisk er den ene enden av konverteringen.
Med bit kan du skrive ulike verdier, fra 0 til .
Fire bit gir 16 verdier (0–15), åtte bit gir 256 (0–255), ti bit gir 1024.
Denne sammenhengen dukker opp igjen i kap. 4.2, der antallet tildelbare adresser i et subnett er — de samme toerpotensene, minus to reserverte adresser.
Oppgavetypen der du får en liste tall skrevet i ulike baser og skal rangere dem etter størrelse.
Oppskriften: bring alle til samme base før du sammenligner — vanligvis titallssystemet, siden du skal rangere verdier og ikke mønstre.
Den faste feilen er å sammenligne sifferrekkene direkte. 100₂ ser større ut enn 9₁₀, men er 4. Antall sifre sier ingenting om verdien når basene er ulike.
Selve rekka av nuller og ettall, uavhengig av hvordan den skal tolkes.
Skillet er viktigere enn det ser ut: 10110₂ er et bitmønster, mens «22» er en tolkning av det som et tall uten fortegn. Det samme mønsteret kan også tolkes som et tegn, en farge eller en instruksjon.
Dette er forberedelsen til kap. 1.3, der én og samme byte har to lovlige talltolkninger samtidig — og til kap. 1.5, der et bitmønster i minnet er en instruksjon og et tall på én gang.
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 Universitetet i Oslo. Dette er ikke offisielt studiemateriell. Les mer.