Talbasomvandlare
Omvandla ett tal mellan binärt, oktalt, decimalt och hexadecimalt. Alla fyra baserna visas samtidigt, och ogiltiga tecken flaggas istället för att tolkas fel.
Tabell 0–16
| Decimalt | Binärt | Oktalt | Hexadecimalt |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
Platsvärde i binärt
| Position | Värde |
|---|---|
| Bit 7 | 128 (2^7) |
| Bit 6 | 64 (2^6) |
| Bit 5 | 32 (2^5) |
| Bit 4 | 16 (2^4) |
| Bit 3 | 8 (2^3) |
| Bit 2 | 4 (2^2) |
| Bit 1 | 2 (2^1) |
| Bit 0 | 1 (2^0) |
Ett binärtal läses genom att addera positionernas värden där det står en etta. Byten 11010010 blir 128 + 64 + 16 + 2 = 210. Samma tal skrivs D2 hexadecimalt: den övre halvbyten 1101 är D och den nedre 0010 är 2.
Från bas till bas
| Från → till | Metod |
|---|---|
| Valfri → decimalt | Multiplicera varje siffra med basen upphöjd till positionen och summera |
| Decimalt → valfri | Dividera upprepat med basen, läs resterna baklänges |
| Binärt → hexadecimalt | Gruppera fyra bitar i taget från höger |
| Binärt → oktalt | Gruppera tre bitar i taget från höger |
| Hexadecimalt → binärt | Skriv varje siffra som fyra bitar |
Att binärt och hexadecimalt går att översätta i grupper, utan mellanräkning i decimalt, beror på att 16 är en potens av 2. Samma sak gäller oktalt med tre bitar per siffra. Det är hela poängen med de två systemen — de är kortskrift för binärt.
Storleksordningar i tvåpotenser
| Bitar | Antal värden | Används till |
|---|---|---|
| 1 | 2 | Av eller på |
| 8 | 256 | En byte, ett tecken i ASCII eller latin-1 |
| 16 | 65 536 | Portnummer, äldre teckenkodning |
| 24 | 16 777 216 | Färger i RGB |
| 32 | 4 294 967 296 | IPv4-adresser, heltal i många språk |
| 64 | Cirka 1,8 × 10¹⁹ | Moderna heltal och minnesadresser |
Färgkoder i praktiken
En hexfärg som #3A7BD5 delas i tre par: 3A är 58 rött, 7B är 123 grönt och D5 är 213 blått. Att värdena går från 00 till FF, alltså 0 till 255, kommer av att varje färgkanal lagras i en byte. De tre kanalerna tillsammans ger 256³ ≈ 16,8 miljoner färger, vilket är mer än ögat kan skilja på och därför kallas true color.
Räkna binärt
Additionen fungerar precis som i decimalt, med skillnaden att minnessiffran uppstår redan vid två istället för vid tio. 1 + 1 blir 10, alltså noll med ett i minne. Att addera 1011 och 0110 ger 10001, vilket är 11 + 6 = 17.
| Operation | Binärt | Decimalt |
|---|---|---|
| Addition | 1011 + 0110 = 10001 | 11 + 6 = 17 |
| Skift vänster | 1011 → 10110 | Multiplicera med 2 |
| Skift höger | 1011 → 101 | Heltalsdivision med 2 |
| OCH (AND) | 1100 & 1010 = 1000 | Bit satt i båda |
| ELLER (OR) | 1100 | 1010 = 1110 | Bit satt i någon |
| XOR | 1100 ^ 1010 = 0110 | Bit satt i exakt en |
Skiftoperationerna är anledningen till att multiplikation och division med tvåpotenser är extremt snabb i en processor — det handlar bara om att flytta bitarna, inte om att räkna.
Negativa tal och tvåkomplement
Datorer lagrar negativa heltal med tvåkomplement: invertera alla bitar och lägg till ett. I åtta bitar blir −5 alltså 11111011. Fördelen är att addition fungerar likadant oavsett tecken, så processorn behöver bara en krets. Priset är att spannet blir asymmetriskt, −128 till 127, eftersom noll tar upp en plats på den positiva sidan.
Bråkdelar i binärt
Positionerna till höger om binärkommat är 1/2, 1/4, 1/8 och så vidare. Talet 0,101 binärt är alltså 0,5 + 0,125 = 0,625. Precis som en tredjedel inte går att skriva färdigt i decimalt går 0,1 inte att skriva färdigt i binärt — det blir 0,0001100110011… i evighet. Det är hela förklaringen till att 0,1 + 0,2 i de flesta programmeringsspråk blir 0,30000000000000004. Felet är inte i språket utan i basen.
Vanliga frågor
- Vad betyder binärt?
- Ett talsystem med bara två siffror, 0 och 1. Varje position är värd dubbelt så mycket som den till höger. Binärtalet 1011 är 8 + 0 + 2 + 1 = 11.
- Hur omvandlar man decimalt till binärt?
- Dividera upprepade gånger med två och skriv ned resterna baklänges. 13 delat med 2 ger 6 rest 1, 6 ger 3 rest 0, 3 ger 1 rest 1, 1 ger 0 rest 1. Baklänges blir det 1101.
- Varför använder datorer binärt?
- Elektroniska kretsar skiljer enkelt och tillförlitligt mellan två tillstånd — ström eller ingen ström. Fler nivåer skulle kräva finare marginaler och bli känsligare för störningar.
- Vad är hexadecimalt bra för?
- Det är en kompakt skrivning av binärt. Varje hexadecimal siffra motsvarar exakt fyra bitar, så en byte blir alltid två tecken. Det är därför färger, minnesadresser och kontrollsummor skrivs hexadecimalt.
- Vad betyder A till F?
- Siffrorna för värdena 10 till 15, som saknar egna tecken i vårt vanliga system. A är 10, B är 11 och så vidare upp till F som är 15.
- Vad betyder färgkoden #FF0000?
- Tre par hexadecimala siffror för rött, grönt och blått. FF är 255, alltså maximal röd och ingen grön eller blå — ren röd färg.
- Hur många värden ryms i en byte?
- Åtta bitar ger 2⁸ = 256 möjliga värden, alltså 0 till 255 om talet är teckenlöst. Med tecken blir spannet −128 till 127.
- Varför är en kilobyte 1024 byte?
- Eftersom 2¹⁰ = 1 024, vilket ligger nära tusen. För att undvika förväxling finns numera prefixet kibibyte (KiB) för 1 024 byte, medan kilobyte (kB) i SI-mening är exakt 1 000 byte. Hårddisktillverkare räknar i tusental, operativsystem ofta i 1 024 — därav den märkliga skillnaden i uppgiven storlek.
- Används oktalt fortfarande?
- Sällan, men det lever kvar i filrättigheter i Unix och Linux. Kommandot chmod 755 anger tre oktala siffror, en för ägare, grupp och övriga.
Relaterade kalkylatorer
Senast uppdaterad 29 augusti 2026