Kalkylator för basomvandling
Omvandla ett heltal till binärt, oktalt, decimalt och hexadecimalt.
Hur man använder denna kalkylator för basomvandling
- Ange heltalet
Skriv in ett icke-negativt heltal i fältet Heltal (t.ex. 255 eller 4096).
- Läs det binära värdet
Det binära resultatet visar bas-2-representationen.
- Kontrollera oktalt och hex
Granska de oktala och hexadecimala resultaten för kompakta representationer.
- Verifiera decimalt
Det decimala resultatet bekräftar det ursprungliga värdet för korskontroll.
Så fungerar denna kalkylator för basomvandling
Denna kalkylator för basomvandling tar ett heltal i decimalform (bas 10) och representerar det i binär (bas 2), oktal (bas 8) och hexadecimal (bas 16) form – de fyra talsystem som används mest inom datateknik. Varje positionssystem fungerar på samma sätt: varje sifferposition representerar en successiv potens av basen, och talets värde är summan av varje siffra multiplicerad med dess positionsvikt. Att omvandla mellan baser är en grundläggande operation inom lågnivåprogrammering, digital logikdesign, nätverksteknik (MAC- och IPv6-adresser), färgkoder i CSS, filrättighetsmasker i Unix och inspektion av minnesadresser vid felsökning.
Upprepad division: dividera N med målbasen R, anteckna resten, upprepa med kvoten tills den når 0, läs sedan resterna i omvänd ordning Konvertera det decimala talet 255 till binärt, oktalt och hexadecimalt. För binärt (R = 2): 255 ÷ 2 = 127 rest 1, 127 ÷ 2 = 63 R 1, 63 ÷ 2 = 31 R 1, 31 ÷ 2 = 15 R 1, 15 ÷ 2 = 7 R 1, 7 ÷ 2 = 3 R 1, 3 ÷ 2 = 1 R 1, 1 ÷ 2 = 0 R 1. Läs resterna nerifrån och upp: 11111111. För oktalt (R = 8): 255 ÷ 8 = 31 R 7, 31 ÷ 8 = 3 R 7, 3 ÷ 8 = 0 R 3 → 377. För hexadecimalt (R = 16): 255 ÷ 16 = 15 R 15 (F), 15 ÷ 16 = 0 R 15 (F) → FF.
Decimalt 4096 → binärt 1000000000000, oktalt 10000, hex 1000. Användbart för att förstå att 4 KiB = 4096 bytes.
Decimalt 15 → binärt 1111, oktalt 17, hex F. Varje hex-siffra mappar till exakt fyra bitar; F = 1111.
- ✓ Inmatningen är ett icke-negativt heltal (noll eller positivt heltal). Bråktal och negativa tal kräver utökade algoritmer (t.ex. tvåkomplement för tecknad binär kod) som ligger utanför detta verktygs omfattning.
- ✓ Hexadecimala siffror över 9 representeras med versala bokstäver A–F, enligt konventionen i de flesta programmeringsspråk, RFC:er och hårdvarudokumentation.
- ✓ Inledande nollor utelämnas från resultatet. För representationer med fast bredd (t.ex. 8-bitars eller 32-bitars binär kod), fyll i resultatet manuellt till önskad bredd.
- ✓ Räknaren accepterar endast icke-negativa heltal. Värden över 2^53 − 1 (JavaScript's Number.MAX_SAFE_INTEGER) avvisas så att de visade siffrorna förblir exakta.
- Varje hexadecimal siffra motsvarar exakt fyra binära siffror (bitar), och varje oktal siffra motsvarar exakt tre bitar. Detta förhållande gör huvudräkning mellan hex, oktalt och binärt snabb när du väl har lärt dig de 16 nibble-mönstren utantill.
- Vanliga värden värda att memorera: 0xFF = 255, 0x100 = 256, 0xFFFF = 65535, 0xFFFFFFFF = 4 294 967 295 (det maximala osignerade 32-bitars heltalet).
- Unix-filrättigheter använder oktala tal: 755 betyder rwxr-xr-x (ägare läsa/skriva/exekvera, grupp och övriga läsa/exekvera). Varje oktal siffra kodar tre rättighetsbitar.
- CSS-hex-färgkoder är tre sammanslagna hexadecimala byte-värden som representerar kanalerna rött, grönt och blått — t.ex. #FF8800 är 255 rött, 136 grönt, 0 blått.
- Teori om positionssystem — Knuth, D. E., The Art of Computer Programming, Volume 2: Seminumerical Algorithms, Section 4.1
- IEEE 754-2019 — Standard for Floating-Point Arithmetic (kontext för heltalsrepresentation)
- RFC 4291 — IP Version 6 Addressing Architecture (hexadecimal notation för IPv6)
Förståelse för talsystem inom datateknik
Varje positionssystem använder en bas (radix) och tilldelar varje siffra en vikt baserat på dess position. I decimalform (bas 10) är siffran längst till höger ental, nästa är tiotal, sedan hundratal. Binärt (bas 2) använder endast 0 och 1, vilket mappar direkt till transistorers på/av-lägen. Oktalt (bas 8) grupperar tre bitar per siffra, och hexadecimalt (bas 16) grupperar fyra bitar per siffra, med A–F för värdena 10–15. Konvertering mellan baser sker genom upprepad division: dividera talet med målbasen, notera resten, upprepa med kvoten tills den är noll, och läs sedan resterna i omvänd ordning. Denna algoritm ligger till grund för all baskonvertering inom programmering.
Praktiska användningsområden för baskonvertering för utvecklare
Utvecklare använder baskonvertering vid inspektion av minnesdumpar, felsökning av bitvisa operationer, tolkning av filrättigheter och arbete med färgkoder. Unix-filrättigheter (t.ex. 755) är oktala: varje siffra kodar läs/skriv/kör för ägare, grupp och övriga. CSS-hex-färger som #FF8800 är tre sammanfogade bytes i hexadecimal form. IPv6-adresser skrivs i hex. Bitmasker och flaggor uttrycks ofta i hex för läsbarhet (0xFF för en byte-mask, 0xFFFF för 16 bitar). Vid felsökning av kod på låg nivå eller nätverksprotokoll avslöjar konvertering mellan decimalt, hex och binärt snabbt de underliggande bitmönstren.
Vanliga frågor om kalkylator för basomvandling
Varför används binära, oktala och hexadecimala tal inom datateknik?
Binära tal motsvarar direkt transistorers på/av-lägen, vilket gör det till hårdvarans modersmål. Oktala och hexadecimala tal är kompakta förkortningar för binära tal — en hexadecimal siffra representerar exakt fyra bitar och en oktal siffra representerar tre bitar — så programmerare använder dem för att uttrycka adresser, bitmasker och färgkoder mer koncist än långa binära strängar.
Hur konverterar jag i den andra riktningen (t.ex. hex till decimalt)?
Multiplicera varje siffra med basens positionspotens och summera resultaten. Till exempel, hex 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 decimalt.
Vad händer med väldigt stora tal?
Räknaren accepterar endast värden upp till JavaScripts gräns för säkra heltal: 2^53 − 1 (9 007 199 254 740 991). Större tal avvisas eftersom de kan förlora de minst signifikanta siffrorna i webbläsaren.
Kan jag konvertera negativa tal eller bråktal?
Detta verktyg hanterar icke-negativa heltal. Negativa heltal i datorsammanhang representeras vanligtvis med tvåkomplement i en fast bitbredd, och bråkvärden använder IEEE 754-flyttalskodning — båda kräver ytterligare parametrar som denna räknare inte samlar in.
Varför visas prefixet 0x i kod men inte i resultatet?
Prefixet 0x (och 0b för binärt, 0o för oktalt) är en språkspecifik syntax som talar om för kompilatorn eller tolken vilken bas som förväntas. Räknaren visar den råa siffersträngen utan prefix så att den kan användas i alla sammanhang.