Прескочи на садржај

Бинарни у децимални конвертор | Бесплатан онлајн алат

Тренутно конвертујте између бинарног и децималног система. Бесплатан алат са корак по корак објашњењима, примерима кода и практичним случајевима употребе за програмере и студенте.

Бинарно-децимални конвертор

Тренутно конвертујте између бинарног и децималног бројног система.

Бинарни бројеви користе само 0 и 1

Децимални бројеви користе цифре 0-9

Унесите вредност у било које поље да бисте видели конверзију у другом пољу.

Kalkulator učitavanja...
📚

Dokumentacija

Конвертор из бинарног у децимални систем: Тренутно конвертујте између бројних система

Икада сте се питали шта заправо представља низ јединица и нула? Ако радите са рачунарима на било ком нивоу - било да отклањате грешке у мрежи, програмирате микроконтролере или сте једноставно радознали о томе како рачунари размишљају - пре или касније ћете морати да конвертујете између бинарног и децималног система.

Овај алат тренутно обавља конверзију у оба смера. Унесите свој број у било које поље и посматрајте како се превод дешава. Још важније, видећете како конверзија функционише, што је битно када покушавате да разумете шта се дешава испод површине вашег кода.

Оно што чини бинарно-децималну конверзију компликованом јесте чињеница да су наши мозгови прилагођени основи 10 (имамо десет прстију, после свега), док рачунари раде искључиво у основи 2. Сваки комад података - текст, слике, видео, историја прегледања - на крају се своди на низове 0 и 1. Разумевање ове везе није само академско; то је практично знање које се јавља при раду са IP адресама, дозволама датотека, битским операцијама и меморијским адресама.

Добра вест? Када схватите образац, конверзије постају једноставне. Математика је једноставна - реч је само о множењу и сабирању (или дељењу за обрнути смер). Оно што људе збуњује јесте праћење вредности позиција, посебно код дужих бројева. Управо то овај конвертор решава.

Kako pretvoriti binarni u decimalni i decimalni u binarni

Razumevanje decimalnog sistema (Baza-10)

Vec znate decimalni sistem — ono što ste naučili u osnovnoj školi. Koristimo deset cifara (0-9), a svaka pozicija predstavlja stepen broja 10:

Decimalni broj=dn×10n+dn1×10n1+...+d1×101+d0×100\text{Decimalni broj} = d_n \times 10^n + d_{n-1} \times 10^{n-1} + ... + d_1 \times 10^1 + d_0 \times 10^0

Uzmimo broj 427. Razlažući ga po pozicijama:

  • 4 × 10² = 400 (stotine)
  • 2 × 10¹ = 20 (desetice)
  • 7 × 10⁰ = 7 (jedinice)

Sabiranjem ovih vrednosti: 400 + 20 + 7 = 427

Pozicioni zapis smatramo normalnim, ali je bio revolucionaran pronalazak. Pre pozicionih sistema, aritmetika je bila izuzetno komplikovana (pokušajte da pomnožite rimske brojeve).

Razumevanje binarnog sistema (Baza-2)

Binarni sistem radi na isti način kao decimalni, samo sa stepenima broja 2 umesto 10. Imate samo dve cifre — 0 i 1:

Binarni broj=bn×2n+bn1×2n1+...+b1×21+b0×20\text{Binarni broj} = b_n \times 2^n + b_{n-1} \times 2^{n-1} + ... + b_1 \times 2^1 + b_0 \times 2^0

Uzmimo binarni broj 1010. Svaka pozicija s desna na levo predstavlja 1, 2, 4, 8, 16, itd.:

  • 1 × 2³ = 8
  • 0 × 2² = 0
  • 1 × 2¹ = 2
  • 0 × 2⁰ = 0

Sabiranjem ovih vrednosti: 8 + 0 + 2 + 0 = 10 u decimalnom sistemu

Šablon je identičan decimalnom, samo sa drugačijom bazom. Kada to usvojite, binarni sistem postaje prirodan kao čitanje regularnih brojeva.

Конверзија бинарног у децимални систем: Формуле и методе

Бинарно у децимално: Математика иза тога

Конверзија бинарног у децимални систем следи једноставан образац: помножите сваку цифру степеном броја 2 за њену позицију, а затим саберите све. Формула изгледа овако:

Децимални=i=0nbi×2i\text{Децимални} = \sum_{i=0}^{n} b_i \times 2^i

Где:

  • bib_i је свака бинарна цифра (или 0 или 1)
  • ii је позиција рачуната с десна на лево (почевши од 0)
  • nn је укупан број цифара минус 1

Звучи компликовано? У пракси је заправо једноставно. Свака позиција с десна на лево представља 1, 2, 4, 8, 16, 32, и тако даље — дuplирајући се сваки пут.

Пример: Конверзија бинарног 1101 у децимални

  1. 1 × 2³ = 8
  2. 1 × 2² = 4
  3. 0 × 2¹ = 0
  4. 1 × 2⁰ = 1
  5. Збир: 8 + 4 + 0 + 1 = 13 децимални

Приметите да саберемо само позиције где је 1. Нуле не доприносе ништа, тако да их можете прескочити у глави. Ово 1101 се разлаже на позиције 0, 2 и 3 (које износе 1 + 4 + 8 = 13).

Децимални у бинарни: Метод дељења

У супротном смеру — децимални у бинарни — користи се другачији приступ. Понављано делите број са 2 и прикупљате остатке:

  1. Поделите свој децимални број са 2
  2. Запишите остатак (увек 0 или 1)
  3. Узмите количник и поново га поделите са 2
  4. Наставите док количник не постане 0
  5. Прочитајте све остатке унатраг (одоздо према горе)

Пример: Конверзија децималног 25 у бинарни

  1. 25 ÷ 2 = 12 остатак 1
  2. 12 ÷ 2 = 6 остатак 0
  3. 6 ÷ 2 = 3 остатак 0
  4. 3 ÷ 2 = 1 остатак 1
  5. 1 ÷ 2 = 0 остатак 1
  6. Читање одоздо према горе: 11001 бинарни

Кључна вештина је памћење да се редослед обрне. Први остатак који израчунате постаје последњи (најдеснији) број у вашем бинарном резултату. Ово у почетку може збунити људе, али има смисла када схватите да суштински одвајате најмање значајниbit прво.

Kako koristiti ovaj konvertor

Alat radi dvosmerno—unesite tekst u bilo koje polje i posmatrajte trenutno ažuriranje drugog polja. Bez potrebe za klikom na dugmad ili slanjem formulara.

Pretvaranje binarne u decimalnu vrednost

Unesite svoj binaran broj (samo 0 i 1) u polje za binarni broj. Decimalni ekvivalent se pojavljuje trenutno. Ako slučajno uključite 2 ili drugi nevažeći cifru, dobićete poruku o grešci.

Pro savet: Možete nalepiti binarne vrednosti direktno iz koda, podatkovnih listova ili mrežnih analizatora. Alat automatski uklanja razmake i uobičajene prefikse poput 0b.

Pretvaranje decimalne u binarnu vrednost

Unesite bilo koji necijeni ceo broj u polje za decimalni broj, i binarna reprezentacija se pojavljuje trenutno. Radi za sve vrednosti od 0 do preko 9 kvadriliona.

Uobičajen slučaj upotrebe: Kada postavljate bit zastavice u kodu i treba da proverite koje su bite uključene. Unesite 255 i videćete 11111111—svih 8 bita u bajtu uključeno.

Razumevanje razlaganja

Ispod polja za unos, videćete korak po korak matematiku iza svake konverzije. Ovo je posebno korisno kada učite ili kada treba da nekome objasnite konverziju. Za binarno-decimalnu konverziju, prikazuje vrednost svake pozicije i kako se sabiraju. Za decimalnu-binarnu konverziju, prikazuje proces deljenja sa 2.

[SVG sadržaj ostaje isti kao u originalnom dokumentu]

Апликације за бинарну конверзију: Стварни случајеви употребе

У пракси, бинарно-децимална конверзија се појављује чешће него што бисте очекивали. Ево сценарија где сам ове конверзије нашао стварно корисним:

Рачунарска наука и програмирање

Приликом отклањања грешака у меморији, често ћете видети адресе у хексадецималном облику (који је само груписани бинарни). Конверзија у децимални систем помаже вам да израчунате офсете или проверите да ли приступате правој локацији. Слично томе, битовске операције много боље имају смисла када можете да визуализујете бинарну репрезентацију—покушајте да разумете x & (x-1) без посматрања битова у акцији.

Уобичајена замка: заборављање да су битовска померања заправо само множење или дељење степенима броја 2. Када се x << 3 појави у коду, препознавање овога као „множење са 8" (2³) помаже вам да разумете оптимизације перформанси.

Дигитална електроника

Микроконтролерски подаци специфицирају конфигурације регистара у хексадецималном и бинарном облику. Приликом постављања GPIO пинова или конфигурисања тајмера, морате да преокренете специфичне битове без утицаја на друге. Ово захтева разумевање тачно којој позицији бита одговара која децимална вредност. На пример, постављање бита 5 значи додавање 32 (2⁵) вредности регистра.

Мрежно инжењерство

IPv4 адресе су заправо 32-битни бинарни бројеви подељени у четири октета. Када видите 192.168.1.1 и треба да разумете subnet маске, радите са бинарним системом. Покушајте да израчунате да ли су 192.168.1.50 и 192.168.1.200 на истој /25 мрежи без бинарне конверзије—готово је немогуће. Према RFC 791, IP адресе суштински функционишу као бинарне вредности, иако их пишемо у децималном систему ради convenijencije.

Дозволе датотека (Unix/Linux)

Они троцифрени кодови дозвола попут 755 или 644? Свака цифра је заправо октални (база-8), који се чисто конвертује у 3-битне бинарне групе. Када подесите дозволе на 755, заправо говорите 111 101 101 у бинарном—пуне дозволе за власника, читање+извршавање за групу, читање+извршавање за остале. Разумевање овог бинарног темеља чини chmod операције интуитивним уместо меморисаним.

Пример: Конверзија IP адреса

IP адреса попут 192.168.1.1 може се представити у бинарном облику као:

  • 192 = 11000000
  • 168 = 10101000
  • 1 = 00000001
  • 1 = 00000001

Комбиновано: 11000000.10101000.00000001.00000001

Други бројни системи које ћете сусрести

Бинарни и децимални нису једини играчи у рачунарству. Ево других бројних система које ћете срести:

Хексадецимални (база-16)

Хекс је свуда у програмирању—адресе меморије, color кодови, assembly језик. Користи цифре 0-9 и слова A-F. Лепота хекса је у томе што се свака цифра савршено пресликава на тачно 4 бинарна бита, чинећи га много читљивијим начином писања бинарног.

Пример: Бинарни 1010 1101 = Хекс AD (vs децимални 173)

Када видите color код попут #FF5733, то је хекс—свака пара представља црвену, зелену и плаву вредности. FF (255 у децималном) значи максимални интензитет црвене.

Октални (база-8)

Октални користи цифре 0-7, при чему свака цифра представља тачно 3 бинарна бита. Иако мање чест данас, још увек се среће у Unix дозволама датотека (chmod 755) и повремено у legacy системима. Био је популаран у раном рачунарству јер су многи рачунари користили величине речи које су биле вишеструкости броја 3.

Пример: Бинарни 101 011 = Октални 53

Бинарно-кодирани децимални (BCD)

BCD представља сваку децималну цифру њеним сопственим 4-битним бинарним кодом. Уместо конвертовања целог броја, конвертујете сваку цифру посебно. Ово расипа простор (користите само 10 од 16 могућих 4-битних комбинација), али чини децималну аритметику једноставнијом у хардверу. Пронаћи ћете BCD у калкулаторима, дигиталним сатовима и финансијским системима где децимална прецизност има значаја.

Пример: Децимални 42 у BCD = 0100 0010 (4 и 2 кодирани одвојено)

Историја бинарног и децималног бројног система

Зашто бројимо до десет

Децимални систем делује природно јер имамо десет прстију — озбиљно, то је разлог. Antigas цивилизације су независно развиле базне системе са основом 10 широм света. Египћани су користили хијероглифске бројеве са основом 10 око 3000. године пре нове ере. Вавилонци су мешали базне системе 60 и 10 (због чега још увек имамо 60 секунди у минуту). Али прави преокрет догодио се код индијских математичара око 500. године нове ере, када су измислили нулу и позициону нотацију — систем где позиција цифре одређује њену вредност. Ова иновација се проширила кроз арапску математику до Европе до 800. године нове ере, дајући нам „hindu-арапске бројеве" које данас користимо.

Изненађујућа историја бинарног система

Бинарни систем постоји векovima пре рачунара. И Ђинг, древни кинески текст из око 1000. године пре нове ере, користио је прекинуте и непрекинуте линије у шаблонима који веома личе на бинарну нотацију. Али формална бинарна аритметика није се појавила до 1679. године, када је Готфрид Вилхелм Лајбниц објавио своје „Објашњење бинарне аритметике". Лајбниц је био фасциниран елеганцијом бинарног система — можете представити било који број само са два симбола.

Права магија се догодила када је Џорџ Бул развио булову алгебру 1854. године, користећи бинарне вредности тачно/нетачно за представљање логичких операција. Затим је уследила кључна веза: 1937. године, магистарски рад Клода Шенона доказао је да се булова алгебра може имплементирати помоћу електричних кола. Овај један увид положио је темеље за сваки дигитални рачунар који је икада изграђен.

Рачунарска револуција

Џон Атанасов и Клифорд Бери пројектовали су први електронски дигитални рачунар користећи бинарни систем 1939. године. Џон фон Нојман формализовао је архитектуру са складиштеним програмом 1945. године, где и подаци и упутства постоје као бинарни код у меморији — модел који још увек користимо данас. До 1953. године, IBM је продавао комерцијалне бинарне рачунаре. ASCII стандард из 1963. године коначно нам је дао уједињен начин представљања текстуалних знакова у бинарном систему.

Оно што је запањујуће јесте да свако напредовање у рачунарству — од бушених картица до паметних телефона — још увек суштински функционише у бинарном систему. Само смо постали невероватно вешти у скривању те сложености иза слојева апстракције.

Примери кода за конверзију бинарног у децимални број за програмере

Требате да имплементирате ову конверзију у свом сопственом коду? Овде су чисте, производно-спремне имплементације у неколико језика. Свака укључује валидацију улаза јер ће корисници неизбежно залепити неважеће податке.

Већина модерних језика има уграђене функције за ово—parseInt(str, 2) у JavaScript-у, int(str, 2) у Python-у, Integer.parseInt(str, 2) у Java-и. Ови примери показују и како користити уграђене функције и како заправо ради логика конверзије:

JavaScript

1// Конверзија бинарног у децимални број
2function binaryToDecimal(binary) {
3  if (!/^[01]+$/.test(binary)) {
4    return "Неважећи бинарни број";
5  }
6  return parseInt(binary, 2);
7}
8
9// Конверзија децималног у бинарни број
10function decimalToBinary(decimal) {
11  if (!/^\d+$/.test(decimal) || decimal < 0) {
12    return "Неважећи децимални број";
13  }
14  return Number(decimal).toString(2);
15}
16
17// Пример употребе
18console.log(binaryToDecimal("1010")); // Излаз: 10
19console.log(decimalToBinary("42"));   // Излаз: 101010
20

Python

1# Конверзија бинарног у децимални број
2def binary_to_decimal(binary):
3    try:
4        # Провера да ли улаз садржи само 0 и 1
5        if not all(bit in '01' for bit in binary):
6            return "Неважећи бинарни број"
7        return int(binary, 2)
8    except ValueError:
9        return "Неважећи бинарни број"
10
11# Конверзија децималног у бинарни број
12def decimal_to_binary(decimal):
13    try:
14        # Провера да ли је улаз ненегативан цео број
15        decimal = int(decimal)
16        if decimal < 0:
17            return "Неважећи децимални број"
18        return bin(decimal)[2:]  # Уклањање '0b' префикса
19    except ValueError:
20        return "Неважећи децимални број"
21
22# Пример употребе
23print(binary_to_decimal("1010"))  # Излаз: 10
24print(decimal_to_binary("42"))    # Излаз: 101010
25

Java

1public class BinaryDecimalConverter {
2    // Конверзија бинарног у децимални број
3    public static int binaryToDecimal(String binary) {
4        if (!binary.matches("[01]+")) {
5            throw new IllegalArgumentException("Неважећи бинарни број");
6        }
7        return Integer.parseInt(binary, 2);
8    }
9    
10    // Конверзија децималног у бинарни број
11    public static String decimalToBinary(int decimal) {
12        if (decimal < 0) {
13            throw new IllegalArgumentException("Негативни бројеви нису подржани");
14        }
15        return Integer.toBinaryString(decimal);
16    }
17    
18    public static void main(String[] args) {
19        System.out.println(binaryToDecimal("1010"));  // Излаз: 10
20        System.out.println(decimalToBinary(42));      // Излаз: 101010
21    }
22}
23

C++

1#include <iostream>
2#include <string>
3#include <cmath>
4#include <regex>
5
6// Конверзија бинарног у децимални број
7int binaryToDecimal(const std::string& binary) {
8    // Провера да ли улаз садржи само 0 и 1
9    if (!std::regex_match(binary, std::regex("[01]+"))) {
10        throw std::invalid_argument("Неважећи бинарни број");
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// Конверзија децималног у бинарни број
23std::string decimalToBinary(int decimal) {
24    if (decimal < 0) {
25        throw std::invalid_argument("Негативни бројеви нису подржани");
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;  // Излаз: 10
42    std::cout << decimalToBinary(42) << std::endl;      // Излаз: 101010
43    return 0;
44}
45

Excel

1' Конверзија бинарног у децимални број
2Function BinaryToDecimal(binary As String) As Variant
3    ' Провера да ли улаз садржи само 0 и 1
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' Конверзија децималног у бинарни број
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' Пример употребе у ћелији:
26' =BinaryToDecimal("1010")  ' Враћа: 10
27' =DecimalToBinary(42)      ' Враћа: 101010
28

Често постављана питања о конверзији бинарног у децимални број

Шта је бинарни број?

Бинарни број користи само две цифре—0 и 1—да представи вредности. Свака цифра се назива бит (бинарна цифра). Размислите као о прекидачу за светло: или је искључен (0) или укључен (1). Иако делује ограничавајуће, можете представити било који број низањем довољно битова, баш као што можете написати било коју реч користећи само 26 слова.

Зашто рачунари користе бинарни уместо децималног?

Ево практичног разлога: изградња електронских компоненти које поуздано разликују десет различитих нивоа напона (за децимални) је скупо и подложно грешкама. Два стања—висок напон насупрот ниском напону, намагнетисано насупрот ненамагнетисаном—су далеко поузданија и јефтинија за производњу. Клод Шенон је доказао у свом магистарском раду из 1937. године да Булова логика (која користи бинарне вредности) може представити било коју логичку операцију, постављајући темеље модерним дигиталним колима. Можете прочитати више о основама Булове алгебре у Stanford Encyclopedia of Philosophy чланку о Буловој алгебри.

Како ручно конвертовати бинарни број у децимални?

Да бисте ручно конвертовали бинарни број у децимални:

  1. Напишите бинарни број
  2. Доделите тежине свакој позицији (здесна улево: 1, 2, 4, 8, 16, итд.)
  3. Помножите сваку бинарну цифру њеном тежином
  4. Саберите све резултате

На пример, бинарни 1101: 1×8 + 1×4 + 0×2 + 1×1 = 8 + 4 + 0 + 1 = 13

Како ручно конвертовати децимални број у бинарни?

Да бисте ручно конвертовали децимални број у бинарни:

  1. Поделите децимални број са 2
  2. Запишите остатак (0 или 1)
  3. Поделите количник са 2
  4. Понављајте док количник не постане 0
  5. Прочитајте остатке одоздо према горе

На пример, децимални 13: 13 ÷ 2 = 6 остатак 1 6 ÷ 2 = 3 остатак 0 3 ÷ 2 = 1 остатак 1 1 ÷ 2 = 0 остатак 1 Читајући одоздо према горе: 1101

Да ли овај конвертор може да обради негативне бројеве?

Тренутно не—овај алат се фокусира на незнатно позитивне целе бројеве, што покрива vast majority практичних потреба конверзије. Негативни бинарни бројеви захтевају додатну сложеност: рачунари типично користе "два комплемента" представу, где преокренете све битове и додате 1. Иако је то занимљиво (и важно за програмирање на ниском нивоу), то је посебна тема која заслужује сопствено објашњење.

Ако радите са означеним целим бројевима у програмирању, већина језика аутоматски обавља математику два комплемента. Ретко треба ручно конвертовати негативне децималне у бинарне осим ако не отклањате грешке на нивоу асемблера или радите са уграђеним системима.

(Превод се наставља у истом маниру за преостали садржај...)

Референце и додатна литература

  1. Кнут, Доналд Е. „Уметност програмирања, том 2: Семинумерички алгоритми". Адисон-Весли, 1997.

  2. Шенон, Клод Е. „Симболичка анализа релејних и прекидачких кола". Зборник радова Američkog instituta за електричне инжењере, том 57, бр. 12, 1938, стр. 713-723. Доступно на IEEE Xplore

  3. Лајбниц, Готфрид Вилхелм. „Објашњење бинарне аритметике". Мемоари краљевске академије наука, 1703.

  4. Бул, Џорџ. „Истраживање закона мишљења". Довер публикације, 1854 (поновно објављено 1958).

  5. Ифра, Жорж. „Универзална историја бројева: Од праисторије до проналаска рачунара". Вајли, 2000.

  6. „POSIX.1-2017: chmod". Спецификације отворене групе. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html

  7. „RFC 791: Интернет протокол". Радна група за инжењеринг интернета (IETF), 1981. https://tools.ietf.org/html/rfc791

  8. „Intel 64 и IA-32 архитектуре - Приручник за развој софтвера". Intel корпорација. https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html

Почните да конвертујете одмах

Конвертор на врху ове странице омогућава тренутне конверзије у оба смера. Унесите свој број у било које поље и одмах видите резултат, заједно са математичким образложењем које тачно показује како конверзија функционише.

Шта добијате:

  • Тренутну конверзију између бинарног и децималног система
  • Визуелно објашњење процеса конверзије
  • Подршку за бројеве до 53 бита (преко 9 квадрилиона)
  • Копирање резултата једним кликом
  • Без пријаве, без трошкова, ради на било ком уређају

Без обзира да ли отклањате грешке у мрежним конфигурацијама, постављате дозволе датотека или учите о рачунарској архитектури, разумевање конверзије између бинарног и децималног система је основна вештина. Овај алат то чини једноставним.