Slik gjør du om binær til desimal (og hex): steg for steg

For å gjøre om binær til desimal ganger du hver bit med plassverdien sin og legger sammen resultatene. Plassverdiene er potenser av 2 som dobles fra høyre mot venstre: 1, 2, 4, 8, 16 og så videre. For eksempel er 1011 i binær 1×8 + 0×4 + 1×2 + 1×1 = 8 + 0 + 2 + 1 = 11.

Prøv gratis: Heltall base-konverterer Gratis å bruke, ingen konto nødvendig.

Denne guiden viser to metoder for å regne om fra binær til desimal, hvordan du går motsatt vei fra desimal til binær, hva heksadesimal er og hvorfor programmerere bruker det, og hvordan du bytter mellom binær, hex og oktal uten kalkulator. Alle eksemplene nedenfor er kontrollert med kode. Vil du sjekke dine egne tall mens du leser, kan du lime dem inn i den gratis binærkonverteren.

Slik leser du binære tall: plassverdier

Binærkode er informasjon skrevet med bare to symboler, 0 og 1. Datamaskiner bruker den fordi kretsene deres arbeider med to tilstander, for eksempel lav og høy spenning. Hvert binært siffer kalles en bit, og en gruppe på 8 bit er en byte.

Binærsystemet er et posisjonssystem, akkurat som titallssystemet. I desimal er hver posisjon verdt 10 ganger posisjonen til høyre for den (enere, tiere, hundrere). I binær er hver posisjon verdt 2 ganger posisjonen til høyre for den:

Posisjon (fra høyre)8.7.6.5.4.3.2.1.
Toerpotens2⁷2⁶2⁵2⁴2³2²2¹2⁰
Plassverdi1286432168421

En 1 betyr «ta med denne plassverdien», og en 0 betyr «hopp over den».

Slik gjør du om binær til desimal steg for steg

Metode 1: legg sammen plassverdiene

Ta det binære tallet 11010110. Skriv plassverdiene under bitene, behold dem der biten er 1, og legg dem sammen:

Bit11010110
Plassverdi1286432168421
Bit × verdi128640160420

128 + 64 + 16 + 4 + 2 = 214. Altså er 11010110₂ = 214₁₀. Det lille senkede tallet viser grunntallet når det ikke er opplagt.

Metode 2: doble og legg til

Denne metoden trenger ingen tabell. Start med 0 og les bitene fra venstre mot høyre: doble den løpende summen og legg til den aktuelle biten.

For 101101:

  1. 0 × 2 + 1 = 1
  2. 1 × 2 + 0 = 2
  3. 2 × 2 + 1 = 5
  4. 5 × 2 + 1 = 11
  5. 11 × 2 + 0 = 22
  6. 22 × 2 + 1 = 45

Altså er 101101₂ = 45. Kontroller med metode 1: 32 + 8 + 4 + 1 = 45.

Slik gjør du om desimal til binær

Gjentatt deling med 2

Del tallet på 2, skriv ned resten (0 eller 1), og gjenta med kvotienten til den blir 0. Les deretter restene nedenfra og opp. Her er 156:

DivisjonKvotientRest
156 ÷ 2780
78 ÷ 2390
39 ÷ 2191
19 ÷ 291
9 ÷ 241
4 ÷ 220
2 ÷ 210
1 ÷ 201

Leser du oppover, får du 156 = 10011100₂. Kontroll: 128 + 16 + 8 + 4 = 156. Den vanligste feilen er å lese restene ovenfra og ned, som gir bitene i omvendt rekkefølge.

Trekk fra toerpotenser

For små tall går det ofte raskere å ta den største toerpotensen som får plass, trekke den fra og gjenta. For 100: 64 får plass (100 − 64 = 36), deretter 32 (36 − 32 = 4), deretter 4 (4 − 4 = 0). Sett en 1 under 64, 32 og 4 og en 0 alle andre steder: 100 = 1100100₂.

Hva er heksadesimal?

Heksadesimal (hex) er et tallsystem med grunntall 16. Det trenger 16 sifre, så etter 0–9 brukes bokstavene A–F for verdiene 10 til 15: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Hver posisjon er verdt 16 ganger posisjonen til høyre for den: 1, 16, 256, 4 096 og så videre.

Programmerere bruker hex fordi det passer nøyaktig med binær. Fire bit har 16 mulige mønstre (0000 til 1111), så ett hex-siffer er nøyaktig 4 bit, og to hex-sifre er nøyaktig én byte. Den største byten, 11111111, er ganske enkelt FF i hex, mens den i desimal er 255, et tall som ikke avslører bitmønsteret. Derfor skrives minneadresser, fargekoder, MAC-adresser og IPv6-adresser i hex.

Slik gjør du om hex til desimal

Bruk den samme plassverdimetoden med potenser av 16, og bytt ut bokstavene med verdiene deres:

Slik gjør du om desimal til heksadesimal

Desimal til heksadesimal fungerer som desimal til binær, men du deler på 16. Rester fra 10 til 15 blir bokstavene A til F. Her er 1000:

DivisjonKvotientRest
1000 ÷ 16628
62 ÷ 16314 = E
3 ÷ 1603

Leser du restene nedenfra og opp, får du 1000 = 3E8₁₆. Kontroll: 3 × 256 + 14 × 16 + 8 = 768 + 224 + 8 = 1000.

Binær til heksadesimal: del bitene i grupper på fire

Siden ett hex-siffer er fire bit, krever omregning fra binær til heksadesimal ingen regning i det hele tatt. Del det binære tallet i grupper på fire bit (kalt nibbles), med start fra høyre, og bytt ut hver gruppe ved hjelp av denne tabellen:

BinærHexDesimalBinærHexDesimal
000000100088
000111100199
0010221010A10
0011331011B11
0100441100C12
0101551101D13
0110661110E14
0111771111F15

Eksempler:

Hex til binær fungerer motsatt: bytt ut hvert hex-siffer med de fire bitene sine. 3E8 → 0011 1110 1000 → 1111101000 når du fjerner de innledende nullene.

Kort om oktal

Oktal har grunntall 8 og bruker sifrene 0–7. Det fungerer som hex, men med grupper på tre bit, fordi 2³ = 8. Den mest kjente bruken i dag er filrettigheter i Unix. I chmod 755 er hvert siffer tre rettighetsbit (lese, skrive, kjøre):

Altså er 755 i oktal bitmønsteret 111 101 101, som er 493 i desimal. Verktøyet Chmod-kalkulator gjør avkryssede rettighetsbokser om til oktaltallet, eller viser hvilke rettigheter et tall som 755 setter.

Hvor du møter disse omregningene

Prefikser: 0b, 0x og 0o

I kode forteller et prefiks kompilatoren hvilket grunntall en tallverdi bruker:

PrefiksGrunntallEksempelDesimalverdi
0bBinær (2)0b101111
0oOktal (8)0o755493
0xHeksadesimal (16)0x3E81000

0x fungerer i nesten alle språk. 0b støttes i Python, JavaScript, Java, C# og C++. 0o brukes av Python og JavaScript, mens C og C++ skriver oktal med en vanlig innledende null, så 0755 i C er 493, ikke 755.

De fleste språk kan også regne om strenger for deg:

# Python
int("1011", 2)      # 11
bin(156)            # '0b10011100'
hex(1000)           # '0x3e8'
int("3E8", 16)      # 1000

// JavaScript
parseInt("1011", 2)     // 11
(1000).toString(16)     // "3e8"
Number("0b1011")        // 11

En felle: i JavaScript returnerer parseInt("0b1011") 0, fordi parseInt stopper ved det første tegnet den ikke kan lese, og ikke forstår prefikset 0b. Fjern prefikset og oppgi grunntallet (radix) i stedet, slik det er forklart i MDN-referansen for parseInt.

Litt om negative tall

Datamaskiner lagrer vanligvis negative heltall som toerkomplement. For å skrive −5 med 8 bit starter du fra 5 = 00000101, snur hver bit og får 11111010, og legger deretter til 1: 11111011. Lest som et tall uten fortegn er det samme mønsteret 251 (256 − 5), eller FB i hex. Derfor kan den samme byten bety −5 eller 251, avhengig av om programmet behandler den som et tall med fortegn.

Omregningstabell for binær, desimal, oktal og heksadesimal

DesimalBinærOktalHex
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010
321000004020
64100000010040
100110010014464
12711111111777F
1281000000020080
25511111111377FF
256100000000400100

Regn om mellom alle tallsystemer med binærkonverteren

Den gratis binærkonverteren kjører i nettleseren. Skriv inn et tall og velg grunntallet, så viser den verdien i binær, oktal, desimal og heksadesimal samtidig, pluss ett valgfritt utgangsgrunntall.

Noen begrensninger du bør kjenne til: den regner bare om ikke-negative heltall, så et minustegn eller et desimalkomma blir avvist; hex-utdata skrives med små bokstaver og uten innledende nuller; og raden «Base64 (64)» er et tall med grunntall 64 som bruker sifrene 0–9, a–z, A–Z, + og /, ikke Base64-tekstkoding.

Vanlige spørsmål

Hva er det største tallet du kan lagre i 8 bit?

255, skrevet som 11111111 i binær eller FF i hex. Åtte bit gir 2⁸ = 256 ulike mønstre, som dekker 0 til 255. Seksten bit når 65 535, og hver ekstra bit dobler området.

Hvorfor bruker programmerere heksadesimal i stedet for desimal?

Fordi hvert hex-siffer svarer til nøyaktig fire bit, kan du lese bitmønsteret rett ut av hex-sifrene. En byte er alltid to hex-sifre (00 til FF). Desimal passer ikke slik: 255 og 256 ser like ut i desimal, men er 11111111 og 100000000 i binær.

Hvordan gjør du om en binær brøk til desimal?

Bitene etter det binære kommaet er verdt 1/2, 1/4, 1/8 og så videre. Altså er 101.11₂ = 4 + 1 + 0,5 + 0,25 = 5,75. Mange desimalbrøker, som 0,1, har ingen eksakt binær form, og derfor er 0.1 + 0.2 ikke nøyaktig 0.3 i de fleste programmeringsspråk. Binærkonverteren håndterer bare heltall.

Er binærkode det samme som ASCII?

Nei. Binær er tallsystemet; ASCII er en tabell som tildeler hvert tegn et tall. Bokstaven A har ASCII-kode 65, og det tallet lagres som bitene 01000001.

Prøv gratis: Heltall base-konverterer Gratis å bruke, ingen konto nødvendig.