Binär till Decimal Omvandlare | Gratis Online Verktyg
Konvertera mellan binär och decimal direkt. Gratis verktyg med steg-för-steg-förklaringar, kodexempel och praktiska användningsfall för utvecklare och studenter.
Binär-Decimal Omvandlare
Konvertera mellan binära och decimala talsystem direkt.
Binära tal använder endast 0:or och 1:or
Decimala tal använder siffrorna 0-9
Ange ett värde i något fält för att se konverteringen i det andra fältet.
Dokumentation
Binär till Decimal Omvandlare: Konvertera Mellan Talsystem Direkt
Har du någonsin stirrat på en sträng av 1:or och 0:or och undrat vilket nummer de egentligen representerar? Om du arbetar med datorer på någon nivå—oavsett om du felsöker nätverksproblem, programmerar mikrokontroller eller bara är nyfiken på hur datorer tänker—kommer du så småningom att behöva konvertera mellan binärt och decimalt.
Detta verktyg hanterar konverteringen direkt i båda riktningarna. Skriv in ditt nummer i vilket fält som helst och se översättningen ske. Ännu viktigare, du kommer att se hur konverteringen fungerar, vilket är avgörande när du försöker förstå vad som händer under huven på din kod.
Här är det som gör binär-decimal konvertering knepig: våra hjärnor är anpassade för bas-10 (vi har tio fingrar, trots allt), men datorer arbetar uteslutande i bas-2. Varje bit data—text, bilder, videor, din surfhistorik—bryts ytterst ner till sekvenser av 0:or och 1:or. Att förstå detta förhållande är inte bara akademiskt; det är praktisk kunskap som dyker upp när man arbetar med IP-adresser, filbehörigheter, bitoperationer och minnesadresser.
Det goda nyheterna? När du väl förstår mönstret blir konverteringar enkla. Matematiken är enkel—det handlar bara om multiplikation och addition (eller division för den omvända riktningen). Det som brukar ställa till det för folk är att hålla reda på positionsvärden, särskilt med längre nummer. Det är just det här som denna omvandlare löser.
Hur man konverterar binärt till decimalt och decimalt till binärt
Förstå det decimala systemet (bas-10)
Du känner redan till decimalt—det är det du lärde dig i lågstadiet. Vi använder tio siffror (0-9), och varje position representerar en potens av 10:
Ta numret 427. Dela upp det efter position:
- 4 × 10² = 400 (hundratal)
- 2 × 10¹ = 20 (tiotal)
- 7 × 10⁰ = 7 (ental)
Lägg ihop dessa värden: 400 + 20 + 7 = 427
Vi tar denna positionella notation för given, men det var en revolutionerande uppfinning. Innan positionella system var aritmetik otroligt krångligt (försök att multiplicera romerska siffror någon gång).
Förstå det binära systemet (bas-2)
Binärt fungerar på samma sätt som decimalt, bara med potenser av 2 istället för potenser av 10. Du har bara två siffror—0 och 1:
Ta det binära numret 1010. Varje position från höger till vänster representerar 1, 2, 4, 8, 16, etc.:
- 1 × 2³ = 8
- 0 × 2² = 0
- 1 × 2¹ = 2
- 0 × 2⁰ = 0
Lägg ihop dessa värden: 8 + 0 + 2 + 0 = 10 i decimalt
Mönstret är identiskt med decimalt, bara med en annan bas. När du väl har internaliserat detta blir binärt lika naturligt som att läsa vanliga siffror.
Binär till decimal konverteringsformler och metoder
Binär till decimal: Matematiken bakom det
Konvertering från binär till decimal följer ett enkelt mönster: multiplicera varje siffra med 2 upphöjt till dess position, och sedan addera allt. Formeln ser ut så här:
Där:
- är varje binär siffra (antingen 0 eller 1)
- är positionen räknat från höger till vänster (börjar vid 0)
- är det totala antalet siffror minus 1
Låter komplicerat? Det är faktiskt enkelt i praktiken. Varje position från höger till vänster representerar 1, 2, 4, 8, 16, 32, och så vidare—fördubblas varje gång.
Exempel: Konvertera binär 1101 till decimal
- 1 × 2³ = 8
- 1 × 2² = 4
- 0 × 2¹ = 0
- 1 × 2⁰ = 1
- Summa: 8 + 4 + 0 + 1 = 13 decimal
Observera hur vi bara adderar positionerna där det finns en 1. Nollorna bidrar ingenting, så du kan hoppa över dem mentalt. Detta är 1101 bryts ner till positionerna 0, 2 och 3 (vilket motsvarar 1 + 4 + 8 = 13).
Decimal till binär: Divisionsmetoden
I den andra riktningen—decimal till binär—används en annan metod. Du dividerar upprepade gånger med 2 och samlar återstående värden:
- Dividera ditt decimala tal med 2
- Skriv ner resten (alltid 0 eller 1)
- Ta kvoten och dividera den med 2 igen
- Fortsätt tills kvoten når 0
- Läs alla rester baklänges (nedifrån och upp)
Exempel: Konvertera decimal 25 till binär
- 25 ÷ 2 = 12 rest 1
- 12 ÷ 2 = 6 rest 0
- 6 ÷ 2 = 3 rest 0
- 3 ÷ 2 = 1 rest 1
- 1 ÷ 2 = 0 rest 1
- Läs från botten och upp: 11001 binär
Nyckeltricket är att komma ihåg att vända ordningen. Den första resten du beräknar blir den sista (längst till höger) siffran i ditt binära resultat. Detta kan överraska folk initialt, men det blir logiskt när du inser att du i princip plockar bort den minst signifikanta biten först.
Hur man använder denna konverterare
Verktyget fungerar dubbelriktat—skriv i endera fältet och se det andra uppdateras omedelbart. Inga knappar att klicka på, inga formulär att skicka in.
Konvertera binärt till decimalt
Skriv ditt binära tal (bara 0:or och 1:or) i binärfältet. Den decimala motsvarigheten visas omedelbart. Om du av misstag inkluderar en 2:a eller annan ogiltig siffra, får du ett felmeddelande.
Pro-tips: Du kan klistra in binära värden direkt från kod, datablad eller nätverksanalysatorer. Verktyget rensar automatiskt bort mellanslag och vanliga prefix som 0b.
Konvertera decimalt till binärt
Ange vilket positivt heltal som helst i decimalfältet, så visas den binära representationen omedelbart. Fungerar för allt från 0 till över 9 biljoner.
Vanligt användningsfall: När du ställer in bitflaggor i kod och behöver verifiera vilka bitar som är satta. Skriv 255 så ser du 11111111—alla 8 bitar i en byte påslagna.
Förstå nedbrytningen
Under inmatningsfälten ser du steg-för-steg-matematiken bakom varje konvertering. Detta är särskilt användbart när du lär dig eller behöver förklara konverteringen för någon annan. För binärt till decimalt visas varje positions värde och hur de summeras. För decimalt till binärt visas delningsprocessen med 2.
[SVG-innehållet förblir oförändrat]
Binära konverteringsapplikationer: Verkliga användningsfall
I praktiken dyker binär-decimal-konvertering upp oftare än man kan tro. Här är scenarier där jag har funnit dessa konverteringar genuint användbara:
Datavetenskap och Programmering
Vid felsökning av minnesproblem ser du ofta adresser i hexadecimalt (som bara är grupperad binär). Konvertering till decimal hjälper dig att beräkna förskjutningar eller verifiera att du kommer åt rätt plats. På samma sätt ger bitoperationer mycket mer mening när du kan visualisera den binära representationen—försök förstå x & (x-1) utan att se bitarna i aktion.
En vanlig fallgrop: att glömma att bitförskjutningar egentligen bara är multiplikation eller division med tvåpotenser. När x << 3 dyker upp i kod, hjälper det att inse detta som "multiplicera med 8" (2³) för att förstå prestandaoptimeringar.
Digital Elektronik
Mikrocontrollerdatablad specificerar registerinställningar i både hex och binärt. När du ställer in GPIO-pinnar eller konfigurerar timers behöver du vända specifika bitar utan att påverka andra. Detta kräver förståelse för exakt vilken bitposition som motsvarar vilket decimalvärde. Till exempel innebär inställning av bit 5 att lägga till 32 (2⁵) till ditt registervärde.
Nätverksengineering
IPv4-adresser är egentligen bara 32-bitars binära tal uppdelade i fyra oktetter. När du ser 192.168.1.1 och behöver förstå subnätmasker, arbetar du med binärt. Försök beräkna om 192.168.1.50 och 192.168.1.200 finns på samma /25-nätverk utan binär konvertering—det är nästan omöjligt. Enligt RFC 791 fungerar IP-adresser fundamentalt som binära värden, även om vi skriver dem i decimal för bekvämlighet.
Filbehörigheter (Unix/Linux)
De treställiga behörighetskoderna som 755 eller 644? Varje siffra är egentligen oktal (bas-8), som konverterar rent till 3-bitars binära grupper. När du ställer behörigheter till 755, säger du egentligen 111 101 101 i binärt—fulla behörigheter för ägare, läs+körning för grupp, läs+körning för andra. Att förstå denna binära grund gör chmod-operationer intuitiva snarare än memorerade.
Exempel: Konvertera IP-adresser
En IPv4-adress som 192.168.1.1 kan representeras binärt som:
- 192 = 11000000
- 168 = 10101000
- 1 = 00000001
- 1 = 00000001
Kombinerat: 11000000.10101000.00000001.00000001
Andra talsystem du kommer att stöta på
Binärt och decimalt är inte de enda spelarna inom datorteknik. Här är andra talsystem du kommer att stöta på:
Hexadecimalt (Bas-16)
Hex är överallt inom programmering—minnesadresser, färgkoder, assemblerspråk. Det använder siffrorna 0-9 och bokstäverna A-F. Skönheten med hex är att varje siffra mappar perfekt till exakt 4 binära bitar, vilket gör det till ett mycket mer läsbart sätt att skriva binärt.
Exempel: Binärt 1010 1101 = Hex AD (vs decimal 173)
När du ser en färgkod som #FF5733, är det hex—varje par representerar röda, gröna och blå värden. FF (255 i decimal) betyder maximal röd intensitet.
Oktalt (Bas-8)
Oktalt använder siffrorna 0-7, med varje siffra som representerar exakt 3 binära bitar. Även om det är mindre vanligt idag, ser du fortfarande det i Unix filbehörigheter (chmod 755) och ibland i äldre system. Det var populärt i tidig datorteknik eftersom många datorer använde ordstorlekar som var multipler av 3.
Exempel: Binärt 101 011 = Oktalt 53
Binär-Kodad Decimal (BCD)
BCD representerar varje decimal siffra med sin egen 4-bitars binära kod. Istället för att konvertera hela numret, konverterar du varje siffra separat. Detta slösar utrymme (du använder bara 10 av de 16 möjliga 4-bitars kombinationerna) men gör decimalräkning enklare i hårdvara. Du hittar BCD i kalkylatorer, digitala klockor och finansiella system där decimalprincision är viktig.
Exempel: Decimal 42 i BCD = 0100 0010 (4 och 2 kodade separat)
Historik om binära och decimala talsystem
Varför vi räknar i tior
Decimal känns naturlig eftersom vi har tio fingrar—på allvar, det är anledningen. Gamla civilisationer utvecklade oberoende bas-10-system över hela världen. Egypterna använde hieroglyfiska bas-10-siffror runt 3000 f.Kr. Babylonierna blandade bas-60 och bas-10 (vilket är anledningen till att vi fortfarande har 60 sekunder på en minut). Men det verkliga genombrottet kom från indiska matematiker runt 500 e.Kr. när de uppfann noll och positionsbeteckning—systemet där en siffras position bestämmer dess värde. Denna innovation spred sig genom arabisk matematik till Europa runt 800 e.Kr. och gav oss de "hinduisk-arabiska siffrorna" vi använder idag.
Binärs överraskande historia
Binär föregick datorer med århundraden. I Ching, en gammal kinesisk text från runt 1000 f.Kr., använde brutna och obrutet linjer i mönster som liknar binär notation. Men formell binär aritmetik dök inte upp förrän 1679 när Gottfried Wilhelm Leibniz publicerade sin "Förklaring av binär aritmetik". Leibniz var fascinerad av binärs elegans—du kan representera vilket nummer som helst med bara två symboler.
Den verkliga magin hände när George Boole utvecklade boolesk algebra 1854, med användning av binära sant/falskt-värden för att representera logiska operationer. Sedan kom den avgörande kopplingen: 1937 bevisade Claude Shannons magisteruppsats att man kunde implementera boolesk algebra med elektriska kretsar. Denna enda insikt lade grunden för varje digital dator som någonsin har byggts.
Datorrevolutionen
John Atanasoff och Clifford Berry designade den första elektroniska digitala datorn med binär användning 1939. John von Neumann formaliserade lagringsarkitekturen 1945, där både data och instruktioner existerar som binär kod i minnet—modellen vi fortfarande använder idag. Från och med 1953 sålde IBM kommersiella binära datorer. ASCII-standarden från 1963 gav oss slutligen ett enhetligt sätt att representera texttecken i binär.
Det anmärkningsvärda är att varje framsteg inom datorteknik—från hålkort till smartphones—fortfarande fundamentalt arbetar i binär. Vi har bara blivit otroligt skickliga på att dölja den komplexiteten bakom abstraktionslager.
Binära till decimala kodexempel för utvecklare
Behöver du implementera denna konvertering i din egen kod? Här är rena, produktionsklara implementationer i flera språk. Varje exempel inkluderar inmatningsvalidering eftersom användare oundvikligen kommer att klistra in ogiltiga data.
De flesta moderna språk har inbyggda funktioner för detta—parseInt(str, 2) i JavaScript, int(str, 2) i Python, Integer.parseInt(str, 2) i Java. Dessa exempel visar både hur man använder de inbyggda funktionerna och hur konverteringslogiken faktiskt fungerar:
JavaScript
1// Binär till decimal konvertering
2function binaryToDecimal(binary) {
3 if (!/^[01]+$/.test(binary)) {
4 return "Ogiltigt binärt tal";
5 }
6 return parseInt(binary, 2);
7}
8
9// Decimal till binär konvertering
10function decimalToBinary(decimal) {
11 if (!/^\d+$/.test(decimal) || decimal < 0) {
12 return "Ogiltigt decimalt tal";
13 }
14 return Number(decimal).toString(2);
15}
16
17// Exempelanvändning
18console.log(binaryToDecimal("1010")); // Skriver ut: 10
19console.log(decimalToBinary("42")); // Skriver ut: 101010
20Python
1# Binär till decimal konvertering
2def binary_to_decimal(binary):
3 try:
4 # Kontrollera om inmatningen innehåller endast 0:or och 1:or
5 if not all(bit in '01' for bit in binary):
6 return "Ogiltigt binärt tal"
7 return int(binary, 2)
8 except ValueError:
9 return "Ogiltigt binärt tal"
10
11# Decimal till binär konvertering
12def decimal_to_binary(decimal):
13 try:
14 # Kontrollera om inmatningen är ett icke-negativt heltal
15 decimal = int(decimal)
16 if decimal < 0:
17 return "Ogiltigt decimalt tal"
18 return bin(decimal)[2:] # Ta bort '0b' prefix
19 except ValueError:
20 return "Ogiltigt decimalt tal"
21
22# Exempelanvändning
23print(binary_to_decimal("1010")) # Skriver ut: 10
24print(decimal_to_binary("42")) # Skriver ut: 101010
25Java
1public class BinaryDecimalConverter {
2 // Binär till decimal konvertering
3 public static int binaryToDecimal(String binary) {
4 if (!binary.matches("[01]+")) {
5 throw new IllegalArgumentException("Ogiltigt binärt tal");
6 }
7 return Integer.parseInt(binary, 2);
8 }
9
10 // Decimal till binär konvertering
11 public static String decimalToBinary(int decimal) {
12 if (decimal < 0) {
13 throw new IllegalArgumentException("Negativa tal stöds inte");
14 }
15 return Integer.toBinaryString(decimal);
16 }
17
18 public static void main(String[] args) {
19 System.out.println(binaryToDecimal("1010")); // Skriver ut: 10
20 System.out.println(decimalToBinary(42)); // Skriver ut: 101010
21 }
22}
23C++
1#include <iostream>
2#include <string>
3#include <cmath>
4#include <regex>
5
6// Binär till decimal konvertering
7int binaryToDecimal(const std::string& binary) {
8 // Kontrollera om inmatningen innehåller endast 0:or och 1:or
9 if (!std::regex_match(binary, std::regex("[01]+"))) {
10 throw std::invalid_argument("Ogiltigt binärt tal");
11 }
12
13 int decimal = 0;
14 for (int i = 0; i < binary.length(); i++) {
15 if (binary[binary.length() - 1 - i] == '1') {
16 decimal += std::pow(2, i);
17 }
18 }
19 return decimal;
20}
21
22// Decimal till binär konvertering
23std::string decimalToBinary(int decimal) {
24 if (decimal < 0) {
25 throw std::invalid_argument("Negativa tal stöds inte");
26 }
27
28 if (decimal == 0) {
29 return "0";
30 }
31
32 std::string binary = "";
33 while (decimal > 0) {
34 binary = (decimal % 2 == 0 ? "0" : "1") + binary;
35 decimal /= 2;
36 }
37 return binary;
38}
39
40int main() {
41 std::cout << binaryToDecimal("1010") << std::endl; // Skriver ut: 10
42 std::cout << decimalToBinary(42) << std::endl; // Skriver ut: 101010
43 return 0;
44}
45Excel
1' Binär till decimal konvertering
2Function BinaryToDecimal(binary As String) As Variant
3 ' Kontrollera om inmatningen innehåller endast 0:or och 1:or
4 Dim i As Integer
5 For i = 1 To Len(binary)
6 If Mid(binary, i, 1) <> "0" And Mid(binary, i, 1) <> "1" Then
7 BinaryToDecimal = CVErr(xlErrValue)
8 Exit Function
9 End If
10 Next i
11
12 BinaryToDecimal = Application.WorksheetFunction.Bin2Dec(binary)
13End Function
14
15' Decimal till binär konvertering
16Function DecimalToBinary(decimal As Long) As String
17 If decimal < 0 Then
18 DecimalToBinary = CVErr(xlErrValue)
19 Exit Function
20 End If
21
22 DecimalToBinary = Application.WorksheetFunction.Dec2Bin(decimal)
23End Function
24
25' Exempelanvändning i en cell:
26' =BinaryToDecimal("1010") ' Returnerar: 10
27' =DecimalToBinary(42) ' Returnerar: 101010
28Vanliga frågor om binär till decimal konvertering
Vad är ett binärt tal?
Ett binärt tal använder bara två siffror—0 och 1—för att representera värden. Varje siffra kallas en bit (binär siffra). Tänk på det som en ljusströmbrytare: den är antingen av (0) eller på (1). Även om detta kan verka begränsande, kan du representera vilket nummer som helst genom att länka ihop tillräckligt många bitar, precis som du kan skriva vilket ord som helst med bara 26 bokstäver.
Varför använder datorer binärt istället för decimalt?
Här är den praktiska anledningen: att bygga elektroniska komponenter som tillförlitligt kan urskilja tio olika spänningsnivåer (för decimalt) är dyrt och felbenäget. Två tillstånd—hög spänning kontra låg spänning, magnetiserad kontra omagnetiserad—är mycket mer tillförlitliga och billigare att tillverka. Claude Shannon bevisade i sin masteruppsats från 1937 att boolesk logik (som använder binära värden) kunde representera vilken logisk operation som helst, och lade därmed grunden för moderna digitala kretsar. Du kan läsa mer om boolesk algebras grunder i Stanford Encyclopedia of Philosophy:s artikel om boolesk algebra.
Hur konverterar jag ett binärt tal till decimalt manuellt?
För att konvertera ett binärt tal till decimalt manuellt:
- Skriv ner det binära talet
- Tilldela vikter till varje position (från höger till vänster: 1, 2, 4, 8, 16, osv.)
- Multiplicera varje binär siffra med dess vikt
- Summera alla resultat
Exempelvis, binärt 1101: 1×8 + 1×4 + 0×2 + 1×1 = 8 + 4 + 0 + 1 = 13
Hur konverterar jag ett decimalt tal till binärt manuellt?
För att konvertera ett decimalt tal till binärt manuellt:
- Dividera det decimala talet med 2
- Skriv ner resten (0 eller 1)
- Dividera kvoten med 2
- Upprepa tills kvoten blir 0
- Läs resterna från botten till toppen
Exempelvis, decimalt 13: 13 ÷ 2 = 6 rest 1 6 ÷ 2 = 3 rest 0 3 ÷ 2 = 1 rest 1 1 ÷ 2 = 0 rest 1 Läsning från botten till toppen: 1101
Kan denna konverterare hantera negativa tal?
För närvarande inte—detta verktyg fokuserar på icke-negativa heltal, vilket täcker majoriteten av praktiska konverteringsbehov. Negativa binära tal kräver ytterligare komplexitet: datorer använder vanligtvis "tvåkomplementsrepresentation", där du vänder alla bitar och lägger till 1. Även om det är intressant (och viktigt för lågnivåprogrammering), är det ett separat ämne som förtjänar sin egen förklaring.
Om du arbetar med signerade heltal i programmering hanterar de flesta språk tvåkomplementsmatematiken automatiskt. Du behöver sällan manuellt konvertera negativa decimala tal till binära om du inte debuggar på assemblernivå eller arbetar med inbäddade system.
Vilket är det största numret jag kan konvertera med detta verktyg?
Verktyget hanterar tal upp till JavaScripts säkra heltalsgräns: 2⁵³ - 1, vilket är 9 007 199 254 740 991 i decimalt eller 53 bitar i binärt. Det är över 9 biljoner—mer än tillräckligt för vilken praktisk tillämpning som helst.
För perspektiv maxar ett 32-bitars heltal ut vid ungefär 2,1 miljarder (2³¹ - 1 för signerat). Så detta verktyg täcker 32-bitars och 53-bitars intervall bekvämt. Om du behöver arbeta med större tal (kryptografiska nycklar, till exempel), skulle du behöva specialiserade bibliotek för godtycklig precision som Python:s inbyggda int-typ eller JavaScripts BigInt.
(Fortsättning följer i nästa meddelande på grund av teckenbegränsning)
Referenser och vidare läsning
-
Knuth, Donald E. "The Art of Computer Programming, Volume 2: Seminumerical Algorithms." Addison-Wesley, 1997.
-
Shannon, Claude E. "A Symbolic Analysis of Relay and Switching Circuits." Transactions of the American Institute of Electrical Engineers, vol. 57, no. 12, 1938, pp. 713-723. Tillgänglig från IEEE Xplore
-
Leibniz, Gottfried Wilhelm. "Explication de l'Arithmétique Binaire" (Förklaring av binär aritmetik). Mémoires de l'Académie Royale des Sciences, 1703.
-
Boole, George. "An Investigation of the Laws of Thought." Dover Publications, 1854 (återutgiven 1958).
-
Ifrah, Georges. "The Universal History of Numbers: From Prehistory to the Invention of the Computer." Wiley, 2000.
-
"POSIX.1-2017: chmod." The Open Group Base Specifications. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html
-
"RFC 791: Internet Protocol." Internet Engineering Task Force (IETF), 1981. https://tools.ietf.org/html/rfc791
-
"Intel 64 och IA-32 Arkitekturer Programvaruutvecklingsmanual." Intel Corporation. https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Börja konvertera nu
Konverteraren längst upp på denna sida hanterar konverteringar direkt i båda riktningarna. Skriv in ditt tal i vilket fält som helst och se resultatet omedelbart, tillsammans med den matematiska nedbrytningen som visar exakt hur konverteringen fungerar.
Det du får:
- Omedelbar konvertering mellan binärt och decimalt
- Visuell förklaring av konverteringsprocessen
- Stöd för tal upp till 53 bitar (över 9 biljoner)
- Kopiering av resultat med ett klick
- Ingen registrering, ingen kostnad, fungerar på vilken enhet som helst
Oavsett om du felsöker nätverkskonfigurationer, ställer in filbehörigheter eller lär dig om datorarkitektur, är förståelse för binär-decimal konvertering en grundläggande färdighet. Detta verktyg gör det enkelt.