Binärt, decimalt och hexadecimalt: så går du från det ena till det andra

Att omvandla mellan talsystem verkar som magi tills du ser att det alltid är samma idé: varje siffra har ett värde som beror på platsen den står på. Här lär du dig att gå från binärt till decimalt och från decimalt till binärt för hand, att läsa hexadecimalt utan rädsla och att översätta text till bitar, med uträknade exempel och en tabell från 0 till 15 att ha nära till hands.

Uppdaterad:

Vad är ett positionssystem

I det decimala talet 4 095 är 4:an inte värd 4: den är värd 4 000, eftersom den står på tusentalets plats. Varje position multiplicerar siffran med en potens av 10 (1, 10, 100, 1 000 …). Det är ett positionssystem, och basen är antalet olika siffror som används: tio i det decimala systemet.

Det binära fungerar likadant, men med bas 2: det finns bara 0 och 1, och varje plats är värd dubbelt så mycket som den förra. Det hexadecimala använder bas 16: de sexton siffrorna är 0 till 9 och bokstäverna A till F, och varje plats är värd 16 gånger den förra. Datorer arbetar binärt eftersom en krets bara behöver skilja på två tillstånd (av och på), och det hexadecimala är ett kort sätt att skriva dessa bitar.

Vad varje plats är värd. Om du kan tvåpotenserna upp till 128 utantill slipper du nästan all räkning.
Position (från höger till vänster)Värde i binärtVärde i hexadecimalt
1:a11
2:a216
3:e4256
4:e84 096
5:e1665 536
6:e321 048 576
7:e6416 777 216
8:e128268 435 456

Från binärt till decimalt, för hand

Du skriver varje siffra med värdet för sin plats och adderar bara de platser där det står en 1:a. Exempel med 1101: från höger till vänster är platserna värda 1, 2, 4 och 8.

  1. Skriv talet och under det värdet för varje position: 1 1 0 1 över 8 4 2 1.
  2. Titta vad som står på varje plats: en 1:a på 8:ans plats, en 1:a på 4:ans, en 0:a på 2:ans och en 1:a på 1:ans.
  3. Bortse från platser med en 0:a (här 2:ans).
  4. Addera: 8 + 4 + 0 + 1 = 13. Alltså är 1101 binärt 13 decimalt.

Med fler siffror är det likadant: 11111111 är 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, det största värdet som ryms i 8 bitar. Och 10110110 är 128 + 32 + 16 + 4 + 2 = 182.

Från decimalt till binärt, med upprepad division

Du delar talet med 2 om och om igen och skriver upp resten från varje division (alltid 0 eller 1) tills kvoten blir 0. Resterna, lästa nerifrån och upp, är det binära talet. Exempel med 45:

Läser du resterna nerifrån och upp får du 101101. För att kontrollera adderar du: 32 + 8 + 4 + 1 = 45.

Det finns en alternativ metod som många föredrar: dra ifrån tvåpotenser från störst till minst. För 200: 128 ryms (72 kvar), 64 ryms (8 kvar), 32 och 16 ryms inte, men 8 ryms (0 kvar). De använda platserna är 128, 64 och 8, så 200 = 11001000.

Hexadecimalt: sexton siffror och en tabell att ha nära till hands

Eftersom det inte finns siffror för 10 till 15 används bokstäverna A, B, C, D, E och F. En hexadecimal siffra motsvarar exakt fyra bitar (en ”nibble”), och därför är systemet så praktiskt: en byte, på 8 bitar, skrivs med bara två hexadecimala siffror.

För att gå från hexadecimalt till decimalt multiplicerar du varje siffra med 16-potensen för sin plats och adderar. Till exempel är 3F = 3 × 16 + 15 = 63 och A3 = 10 × 16 + 3 = 163.

Från 0 till 15 i de fyra talsystem som verktyget visar.
DecimaltBinärt (4 bitar)OktaltHexadecimalt
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Varför hexadecimalt används: byte, färger och adresser

En byte är 8 bitar och går från 0 till 255 (00000000 till 11111111). Att skriva bitar för hand är långsamt och ger lätt fel; hexadecimalt är samma byte två tecken, från 00 till FF. För att gå från binärt till hexadecimalt delar du bitarna i grupper om fyra från höger och byter ut varje grupp mot sin siffra i tabellen. Exempel: 11010111 delas i 1101 och 0111, som är D och 7, så det blir D7. Decimalt är det 13 × 16 + 7 = 215.

Det mest kända fallet är webbfärger. I #FF8800 finns tre byte: FF för rött (255), 88 för grönt (136) och 00 för blått (0). Det är en intensiv orange: allt rött, lite mer än hälften av det gröna och inget blått. Hexadecimalt förekommer också i minnesadresser, felkoder och nätverksidentifierare.

Från text till binärt med ASCII

En dator sparar varje bokstav som ett tal, och det talet som bitar. I ASCII-tabellen är A 65, vilket i binärt med 8 bitar är 01000001. Ordet ”Hi” är två bokstäver: H är 72 (01001000) och i är 105 (01101001), så det skrivs 01001000 01101001. Med ”Hola” blir det 72, 111, 108 och 97, alltså 01001000 01101111 01101100 01100001, eller hexadecimalt 48 6F 6C 61.

Verktyget använder teckenkodningen UTF-8: för grundläggande engelska bokstäver tar varje tecken en byte på 8 bitar, men ett å, ett ö eller en emoji tar flera byte och ger därför mer än 8 bitar. Till exempel är å två byte: 11000011 10100101 (C3 A5 hexadecimalt).

Så gör du allt det här med verktyget

Omvandlaren ”Binärt, decimalt och hex” är bra för att kontrollera dina uträkningar för hand eller för att lösa långa tal utan fel.

  1. Skriv talet i fältet för dess talsystem: ”Decimalt (bas 10)”, ”Binärt (bas 2)”, oktalt eller ”Hexadecimalt (bas 16)”. De andra tre fylls i av sig själva.
  2. Om en siffra inte hör till talsystemet (till exempel en 2:a i binärt) varnar verktyget dig.
  3. För text skriver du den i fältet ”Text” och tittar på ”Binärt (8 bitar per tecken)” och hexadecimalt per byte. Du kan också klistra in bitar i grupper om 8 för att få tillbaka texten.
  4. För ovanliga talsystem använder du ”Valfritt talsystem (2 till 36)”: du väljer startbas, målbas och talet.

Begränsningarna: det omvandlar bara icke-negativa heltal (inga decimaler eller tecken) och lägger inte till inledande nollor åt dig, så om du vill ha fasta 8 bitar måste du fylla på för hand (13 är 00001101). Inget av det du skriver lämnar din webbläsare.

Vanliga misstag

Uträknade övningar att träna på

Försök lösa var och en innan du tittar på svaret och kontrollera sedan med verktyget.

Vanliga frågor

Hur omvandlar jag 1101 från binärt till decimalt?

Du adderar värdena för de platser där det står en 1:a: 8 + 4 + 1 = 13. Den andra siffran från höger är en 0:a, så 2:an adderas inte.

Hur mycket är 255 binärt och hexadecimalt?

255 är 11111111 binärt och FF hexadecimalt. Det är det största värdet som ryms i en byte på 8 bitar.

Varför använder hexadecimalt bokstäver?

Därför att det behöver sexton olika symboler och det decimala systemet bara ger tio (0 till 9). Därför är A värt 10, B värt 11, C värt 12, D värt 13, E värt 14 och F värt 15.

Hur många olika tal kan skrivas med 8 bitar?

256, från 0 till 255. Generellt kan man med n bitar representera 2 upphöjt till n värden.

Omvandlar verktyget negativa tal eller tal med decimaler?

Nej, bara icke-negativa heltal. För text används UTF-8, så bokstäver med accent eller ring och emojis ger mer än 8 bitar.