Talbas

Jämför Beräkningar

Nedladdningar

Inkluderar dina indata och resultat för denna beräkning, plus eventuella ytterligare beräkningar du har jämfört.

Att Skriva Om Samma Värde i Binärt, Oktalt, Decimalt och Hexadecimalt

En talbas (eller “radix”) är hur många distinkta siffror ett sifferssystem använder innan det går över till nästa positionsvärde — decimalsystemet använder 10 (0–9), binärt använder 2 (0–1), oktalt använder 8 (0–7), och hexadecimalt använder 16 (0–9 sedan A–F). Ange ett heltal i någon av dessa fyra baser, så visar denna kalkylator samma värde skrivet i alla fyra samtidigt.

Binärt är hur datorer representerar varje värde internt (varje siffra är en “bit”); hexadecimalt är en vanlig förkortning för binärt inom programmering (varje hex-siffra representerar exakt 4 binära siffror, så det är mycket mer kompakt att läsa och skriva); oktalt dyker upp i äldre Unix-filrättigheter och vissa lågnivåsammanhang. Decimalt är bara det vardagliga bas-10-systemet.

Formeln

Varje positionellt sifferssystem fungerar på samma sätt: varje siffra multipliceras med basen upphöjd till dess positionsvärde, och summeras sedan:

Va¨rde=i=0ndi×Basi\vA{\text{Värde}} = \sum_{i=0}^{n} d_i \times \vB{\text{Bas}}^i

där did_i är siffran vid position ii (räknat från 0 vid siffran längst till höger). Att omvandla till en annan bas dividerar upprepade gånger decimalvärdet med den nya basen, och noterar varje rest — det omvända av summan ovan.

Räkneexempel

Att omvandla binärtalet 11111111 till dess tre andra baser:

  1. Läs från höger till vänster, varje 1 bidrar med sitt positionsvärde: 27+26+25+24+23+22+21+20=2552^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 = 255.
  2. Decimalt: 255.
  3. Oktalt: att dividera 255 med 8 upprepade gånger (255 ÷ 8 = 31 r7, 31 ÷ 8 = 3 r7, 3 ÷ 8 = 0 r3) läser resterna nedifrån och upp som 377.
  4. Hexadecimalt: 255 ÷ 16 = 15 r15, 15 ÷ 16 = 0 r15 — båda resterna är 15 (F i hex), vilket ger FF.

Viktiga faktorer att tänka på

  • En enda byte (8 bitar) kan representera exakt 256 distinkta värden — 0 till 255 i decimalt, eller 00 till FF i hexadecimalt. Det är exakt varför 255/FF är ett så vanligt referensvärde inom datavetenskap — det är det maximala värde en enda byte kan hålla, vilket dyker upp överallt från RGB-färgkanaler (0-255 per kanal) till nätverk och filformat.
  • Oktalt var historiskt vanligare än det är idag, till stor del på grund av äldre datorordstorlekar. Oktalt (bas 8) mappar rent mot grupper om 3 binära siffror, vilket passade datorer byggda kring ordstorlekar delbara med 3 bitar — modern datateknik har till stor del övergått till hexadecimalt (som mappar mot grupper om 4 bitar) eftersom det mesta av modern hårdvara använder ordstorlekar delbara med 4 och 8, även om oktalt fortfarande förekommer i specifika sammanhang som Unix-filrättighetsnotation (t.ex. chmod 755).
  • Ett vanligt programmerarfel är att blanda ihop ett tals bas enbart utifrån sammanhanget. Siffrorna “10” betyder mycket olika värden beroende på bas — 10 i decimalt, 2 i binärt, 8 i oktalt, 16 i hexadecimalt — vilket är varför programmeringsspråk vanligtvis kräver ett uttryckligt prefix (som 0x för hex eller 0b för binärt) för att ta bort all tvetydighet om vilken bas som avses.
  • Vilket heltal som helst kan i teorin representeras i VILKEN bas som helst, inte bara dessa fyra. Binärt, oktalt, decimalt och hexadecimalt är helt enkelt de fyra baserna med mest vanlig användning i verkligheten inom datateknik och vardagsmatematik — samma positionsnotationsprincip denna kalkylator använder sträcker sig till vilken bas som helst, som bas 3, bas 20, eller bas 60 (grunden för hur tid och vinklar traditionellt delas upp).

Vanliga Misstag

  • Att läsa ett tal med blandad bas utan prefix som decimalt som standard. “10” betyder tio i decimalt men bara två i binärt — kontrollera alltid (eller ange) vilken bas ett tal är skrivet i innan du räknar med det.
  • Att anta att inledande nollor ändrar värdet. Precis som i decimalt är 0011 i binärt samma värde som 11 — inledande nollor spelar bara roll för formatering med fast bredd (som att visa en hel byte), inte för talets faktiska värde.
  • Att glömma att hex-siffror över 9 använder bokstäver, inte tvåsiffriga tal. Hexadecimalt tio skrivs som A, inte 10 — att skriva 10 i hex betyder faktiskt sexton i decimalt, en vanlig källa till betydande fel.
  • Att försöka omvandla ett negativt tal direkt. Som FAQ:n ovan nämner beror negativa binära/hex-värden på en vald bitbredd och en tvåkomplement-konvention — det finns ingen enda entydig omvandling som det gör för icke-negativa heltal.

Bra att Veta

  • Arbetar du med nätverksadresser istället för godtyckliga tal? IP-subnät Kalkylator tillämpar samma binär/decimal-relation specifikt på IPv4-adresser.
  • Behöver du mycket stora eller mycket små decimaltal i kompakt form? Grundpotensform Kalkylator hanterar den typen av omvandling istället.
  • Nyfiken på ett mycket äldre, positionsrelaterat sifferssystem? Romerska Siffror Kalkylator omvandlar till och från romerska siffror, som använder en helt annan (icke-positionell) metod.

Källa: Standard positional numeral system conversion.

Vanliga Frågor

Vad är en talbas (radix)?

En talbas är hur många distinkta siffror ett talsystem använder innan det bär över till nästa platsvärde. Decimalt (bas 10) använder siffrorna 0-9; binärt (bas 2) använder bara 0 och 1; oktalt (bas 8) använder 0-7; hexadecimalt (bas 16) använder 0-9 och sedan bokstäverna A-F för att representera 10-15.

Varför använder datorer binärt?

Datorhårdvara är byggd av strömbrytare som bara någonsin är helt på eller helt av, vilket mappar naturligt på binärens två siffror (1 och 0). Varje värde en dator lagrar eller bearbetar representeras i slutändan binärt, även om programmerare vanligtvis arbetar med mer läsbara baser som decimalt eller hexadecimalt.

Varför används hexadecimalt istället för binärt i programmering?

Varje hexadecimal siffra representerar exakt 4 binära siffror (bitar), så ett hextal är ungefär en fjärdedel så långt som det motsvarande binära talet samtidigt som det representerar exakt samma värde — mycket lättare för en person att läsa, skriva, och jämföra än en lång sträng av 1:or och 0:or.

Kan denna kalkylator hantera negativa tal?

Nej — att representera ett negativt tal i binärt eller hexadecimalt kräver att man väljer en fast bitbredd och en tvåkomplementskonvention, vilket varierar per sammanhang (8-bitars, 16-bitars, 32-bitars, osv.). Denna kalkylator är avgränsad till icke-negativa heltal, där konverteringen är entydig.

Bekräfta din ålder

För att skapa ett konto, ange din födelsemånad och ditt födelseår.