Конвертер из двоичной в десятичную систему | Бесплатный онлайн инструмент
Мгновенное преобразование между двоичной и десятичной системами. Бесплатный инструмент с пошаговыми объяснениями, примерами кода и практическими вариантами использования для разработчиков и студентов.
Конвертер двоичных и десятичных чисел
Мгновенное преобразование между двоичной и десятичной системами счисления.
Двоичные числа используют только 0 и 1
Десятичные числа используют цифры 0-9
Введите значение в любое поле, чтобы увидеть преобразование в другом поле.
Документация
Конвертер из двоичной в десятичную систему: Мгновенное преобразование между системами счисления
Когда-нибудь смотрели на строку из 1 и 0 и думали, какое число они представляют? Если вы работаете с компьютерами на любом уровне — будь то отладка сетевых проблем, программирование микроконтроллеров или просто любопытство о том, как думают компьютеры — рано или поздно вам понадобится преобразование между двоичной и десятичной системами.
Этот инструмент выполняет преобразование мгновенно в обоих направлениях. Введите число в любое поле и наблюдайте за переводом. Более того, вы увидите как работает преобразование, что важно, когда вы пытаетесь понять, что происходит под капотом вашего кода.
В чем сложность преобразования между двоичной и десятичной системами: наш мозг настроен на десятичную систему (в конце концов, у нас десять пальцев), но компьютеры работают исключительно в двоичной системе. Каждый элемент данных — текст, изображения, видео, история вашего просмотра — в конечном итоге разбивается на последовательности 0 и 1. Понимание этой связи — не просто академический интерес; это практические знания, которые возникают при работе с IP-адресами, правами доступа к файлам, побитовыми операциями и адресами памяти.
Хорошая новость? Как только вы уловите закономерность, преобразования станут простыми. Математика проста — это просто умножение и сложение (или деление для обратного преобразования). Что людей сбивает с толку, так это отслеживание позиционных значений, особенно с более длинными числами. Именно это и решает данный конвертер.
Как преобразовать двоичное число в десятичное и наоборот
Понимание десятичной системы (основание 10)
Вы уже знакомы с десятичной системой — это то, что вы изучали в начальной школе. Мы используем десять цифр (0-9), и каждая позиция представляет степень 10:
Возьмем число 427. Разберем его по позициям:
- 4 × 10² = 400 (сотни)
- 2 × 10¹ = 20 (десятки)
- 7 × 10⁰ = 7 (единицы)
Складывая эти значения: 400 + 20 + 7 = 427
Мы воспринимаем позиционную нотацию как должное, но это было революционное изобретение. До позиционных систем арифметика была невероятно громоздкой (попробуйте умножить римские цифры).
Понимание двоичной системы (основание 2)
Двоичная система работает так же, как десятичная, только со степенями 2 вместо степеней 10. У вас есть только две цифры — 0 и 1:
Возьмем двоичное число 1010. Каждая позиция справа налево представляет 1, 2, 4, 8, 16 и т.д.:
- 1 × 2³ = 8
- 0 × 2² = 0
- 1 × 2¹ = 2
- 0 × 2⁰ = 0
Складывая эти значения: 8 + 0 + 2 + 0 = 10 в десятичной системе
Схема идентична десятичной, просто с другим основанием. Как только вы это усвоите, двоичная система станет такой же естественной, как чтение обычных чисел.
Преобразование из двоичной в десятичную систему: Формулы и методы
Двоичная в десятичную: Математическая основа
Преобразование из двоичной в десятичную систему следует простому алгоритму: умножьте каждую цифру на степень 2 для её позиции, затем сложите все значения. Формула выглядит так:
Где:
- - каждая двоичная цифра (0 или 1)
- - позиция, считая справа налево (начиная с 0)
- - общее количество цифр минус 1
Звучит сложно? На практике всё просто. Каждая позиция справа налево представляет 1, 2, 4, 8, 16, 32 и так далее — удваиваясь каждый раз.
Пример: Преобразование двоичного 1101 в десятичное
- 1 × 2³ = 8
- 1 × 2² = 4
- 0 × 2¹ = 0
- 1 × 2⁰ = 1
- Сумма: 8 + 4 + 0 + 1 = 13 в десятичной
Обратите внимание, что мы суммируем только позиции с 1. Нули не вносят вклад, поэтому их можно мысленно пропустить. 1101 разбивается на позиции 0, 2 и 3 (что равно 1 + 4 + 8 = 13).
Десятичная в двоичную: Метод деления
В обратном направлении — из десятичной в двоичную — используется другой подход. Вы многократно делите число на 2 и собираете остатки:
- Разделите десятичное число на 2
- Запишите остаток (всегда 0 или 1)
- Возьмите частное и снова разделите на 2
- Продолжайте, пока частное не станет 0
- Прочитайте все остатки в обратном порядке (снизу вверх)
Пример: Преобразование десятичного 25 в двоичное
- 25 ÷ 2 = 12 остаток 1
- 12 ÷ 2 = 6 остаток 0
- 6 ÷ 2 = 3 остаток 0
- 3 ÷ 2 = 1 остаток 1
- 1 ÷ 2 = 0 остаток 1
- Читая снизу вверх: 11001 в двоичной
Главный трюк — помнить, что нужно перевернуть порядок. Первый остаток, который вы вычисляете, становится последней (крайней справа) цифрой в двоичном результате. Поначалу это может сбивать с толку, но имеет смысл, когда понимаешь, что по сути отделяешь наименее значащий бит первым.
Как использовать этот конвертер
Инструмент работает двунаправленно — введите значение в любое поле, и другое поле обновится мгновенно. Никаких кнопок нажимать не нужно, никаких форм заполнять не требуется.
Преобразование двоичного числа в десятичное
Введите двоичное число (только 0 и 1) в поле "Двоичное". Десятичный эквивалент появится немедленно. Если случайно включить цифру 2 или другую недопустимую цифру, вы получите сообщение об ошибке.
Профессиональный совет: Вы можете вставлять двоичные значения напрямую из кода, технических спецификаций или сетевых анализаторов. Инструмент автоматически удаляет пробелы и стандартные префиксы, такие как 0b.
Преобразование десятичного числа в двоичное
Введите любое неотрицательное целое число в поле "Десятичное", и двоичное представление появится мгновенно. Работает для чисел от 0 до более 9 квадриллионов.
Типичный случай использования: Когда вы устанавливаете битовые флаги в коде и хотите проверить, какие биты установлены. Введите 255, и вы увидите 11111111 — все 8 бит в байте включены.
Понимание процесса преобразования
Под полями ввода вы увидите пошаговую математику каждого преобразования. Это особенно полезно при обучении или когда вам нужно объяснить преобразование кому-то другому. Для преобразования из двоичного в десятичное показывается значение каждой позиции и как они суммируются. Для преобразования из десятичного в двоичное показывается процесс деления на 2.
[SVG-графика остается без изменений]
Приложения для преобразования двоичных чисел: реальные варианты использования
На практике преобразование двоичных и десятичных чисел встречается чаще, чем вы могли бы подумать. Вот сценарии, где я находил такие преобразования действительно полезными:
Компьютерные науки и программирование
При отладке проблем с памятью вы часто будете видеть адреса в шестнадцатеричном формате (который по сути является сгруппированным двоичным). Преобразование в десятичный помогает вычислять смещения или проверять, что вы обращаетесь к правильному месту. Точно так же побитовые операции становятся гораздо понятнее, когда вы можете визуализировать двоичное представление — попробуйте понять x & (x-1) без просмотра битов в действии.
Распространенная ошибка: забывать, что побитовые сдвиги по сути являются умножением или делением на степени 2. Когда в коде появляется x << 3, понимание этого как "умножить на 8" (2³) помогает понять оптимизации производительности.
Цифровая электроника
В технических спецификациях микроконтроллеров конфигурации регистров указаны в шестнадцатеричном и двоичном форматах. При настройке GPIO-пинов или таймеров необходимо переключать определенные биты, не затрагивая другие. Это требует точного понимания того, какая битовая позиция соответствует какому десятичному значению. Например, установка бита 5 означает добавление 32 (2⁵) к значению регистра.
Сетевое администрирование
IPv4-адреса — это по сути 32-битные двоичные числа, разделенные на четыре октета. Когда вы видите 192.168.1.1 и вам нужно понять маски подсети, вы работаете с двоичными числами. Попробуйте вычислить, находятся ли 192.168.1.50 и 192.168.1.200 в одной сети /25 без двоичного преобразования — это практически невозможно. Согласно RFC 791, IP-адреса фундаментально работают как двоичные значения, даже если мы пишем их в десятичном формате для удобства.
Права доступа к файлам (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
Другие системы счисления, с которыми вы столкнетесь
Двоичная и десятичная системы — не единственные в вычислительной технике. Вот другие системы счисления, которые вам встретятся:
Шестнадцатеричная (Base-16)
Шестнадцатеричная система повсюду в программировании — адреса памяти, цветовые коды, язык ассемблера. Она использует цифры 0-9 и буквы A-F. Красота шестнадцатеричной системы в том, что каждая цифра точно соответствует 4 двоичным битам, делая двоичную запись более читаемой.
Пример: Двоичное 1010 1101 = Шестнадцатеричное AD (в десятичной системе 173)
Когда вы видите цветовой код вроде #FF5733, это шестнадцатеричная система — каждая пара представляет значения красного, зеленого и синего цветов. FF (255 в десятичной) означает максимальную интенсивность красного.
Восьмеричная (Base-8)
Восьмеричная система использует цифры 0-7, каждая цифра представляет ровно 3 двоичных бита. Хотя сегодня она встречается реже, вы все еще видите ее в правах доступа Unix (chmod 755) и время от времени в устаревших системах. Она была популярна в ранних вычислениях, потому что многие компьютеры использовали размеры слов, кратные 3.
Пример: Двоичное 101 011 = Восьмеричное 53
Двоично-десятичное кодирование (BCD)
BCD представляет каждую десятичную цифру собственным 4-битным двоичным кодом. Вместо преобразования всего числа вы преобразуете каждую цифру отдельно. Это расточительно по месту (вы используете только 10 из 16 возможных 4-битных комбинаций), но упрощает десятичную арифметику в аппаратных средствах. Вы найдете BCD в калькуляторах, цифровых часах и финансовых системах, где важна десятичная точность.
Пример: Десятичное 42 в BCD = 0100 0010 (4 и 2 закодированы раздельно)
История двоичной и десятичной систем счисления
Почему мы считаем десятками
Десятичная система кажется естественной, потому что у нас десять пальцев — серьезно, вот именно по этой причине. Древние цивилизации независимо друг от друга развивали десятичные системы по всему миру. Египтяне использовали иероглифические десятичные числа около 3000 года до н.э. Вавилоняне смешивали шестидесятеричную и десятичную системы (из-за чего у нас до сих пор 60 секунд в минуте). Но настоящий прорыв произошел благодаря индийским математикам около 500 года н.э., когда они изобрели ноль и позиционную нотацию — систему, где положение цифры определяет ее значение. Это нововведение распространилось через арабскую математику в Европу к 800 году н.э., дав нам "индо-арабские цифры", которые мы используем сегодня.
Удивительная история двоичной системы
Двоичная система существовала задолго до компьютеров. Книга перемен (И-цзин), древний китайский текст около 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
20Python
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
25Java
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}
23C++
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}
45Excel
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 букв.
Почему компьютеры используют двоичную систему вместо десятичной?
Вот практическая причина: создание электронных компонентов, надежно различающих десять различных уровней напряжения (для десятичной системы), дорого и prone to ошибкам. Два состояния — высокое напряжение против низкого напряжения, намагниченное против ненамагниченного — гораздо надежнее и дешевле в производстве. Клод Шеннон доказал в своей магистерской диссертации 1937 года, что булева логика (использующая двоичные значения) может представлять любую логическую операцию, заложив основу для современных цифровых схем. Подробнее о фундаментальных основах булевой алгебры можно прочитать в статье Стэнфордской энциклопедии философии о булевой алгебре.
Как вручную преобразовать двоичное число в десятичное?
Чтобы преобразовать двоичное число в десятичное вручную:
- Запишите двоичное число
- Назначьте веса каждой позиции (справа налево: 1, 2, 4, 8, 16 и т.д.)
- Умножьте каждую двоичную цифру на ее вес
- Суммируйте все результаты
Например, двоичное 1101: 1×8 + 1×4 + 0×2 + 1×1 = 8 + 4 + 0 + 1 = 13
Как вручную преобразовать десятичное число в двоичное?
Чтобы преобразовать десятичное число в двоичное вручную:
- Разделите десятичное число на 2
- Запишите остаток (0 или 1)
- Разделите частное на 2
- Повторяйте, пока частное не станет 0
- Прочитайте остатки снизу вверх
Например, десятичное 13: 13 ÷ 2 = 6 остаток 1 6 ÷ 2 = 3 остаток 0 3 ÷ 2 = 1 остаток 1 1 ÷ 2 = 0 остаток 1 Читая снизу вверх: 1101
Может ли этот конвертер работать с отрицательными числами?
В настоящее время нет — этот инструмент фокусируется на неотрицательных целых числах, что охватывает подавляющее большинство практических потребностей в преобразовании. Отрицательные двоичные числа требуют дополнительной сложности: компьютеры обычно используют представление в дополнительном коде, где вы инвертируете все биты и добавляете 1. Хотя это интересно (и важно для низкоуровневого программирования), это отдельная тема, заслуживающая собственного объяснения.
Если вы работаете с целыми числами со знаком в программировании, большинство языков автоматически обрабатывают математику дополнительного кода. Редко возникает необходимость вручную преобразовывать отрицательные десятичные числа в двоичные, если только вы не отлаживаете на уровне ассемблера или не работаете со встраиваемыми системами.
Какое самое большое число я могу преобразовать с помощью этого инструмента?
Инструмент обрабатывает числа до безопасного целочисленного предела JavaScript: 2⁵³ - 1, что составляет 9 007 199 254 740 991 в десятичной системе или 53 бита в двоичной. Это более 9 квадриллионов — более чем достаточно для любого практического применения.
Для справки, 32-битное целое число максимально достигает примерно 2,1 миллиарда (2³¹ - 1 для знакового). Таким образом, этот инструмент комфортно покрывает 32-битные и 53-битные диапазоны. Если вам нужно работать с большими числами (например, криптографическими ключами), вам потребуются специализированные библиотеки с произвольной точностью, такие как встроенный тип int в Python или BigInt в JavaScript.
(Перевод продолжается в том же духе для остальных разделов...)
Ссылки и дополнительная литература
-
Кнут, Дональд Э. "Искусство программирования, том 2: Семинумерические алгоритмы." Addison-Wesley, 1997.
-
Шеннон, Клод Э. "Символический анализ релейных и коммутационных схем." Труды Американского Института Электротехников, том 57, № 12, 1938, стр. 713-723. Доступно в IEEE Xplore
-
Лейбниц, Готфрид Вильгельм. "Объяснение двоичной арифметики". Записки Королевской Академии Наук, 1703.
-
Буль, Джордж. "Исследование законов мышления." Dover Publications, 1854 (переиздано в 1958).
-
Ифрах, Жорж. "Всемирная история чисел: От prehistory до изобретения компьютера." Wiley, 2000.
-
"POSIX.1-2017: chmod." Базовые спецификации The Open Group. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html
-
"RFC 791: Интернет-протокол." Инженерная группа по развитию интернета (IETF), 1981. https://tools.ietf.org/html/rfc791
-
"Руководство разработчика по архитектурам Intel 64 и IA-32." Корпорация Intel. https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Начните конвертировать прямо сейчас
Конвертер в верхней части этой страницы выполняет преобразования мгновенно в обоих направлениях. Введите число в любое поле и сразу увидите результат вместе с математическим разбором, показывающим точно, как работает преобразование.
Что вы получите:
- Мгновенное преобразование между двоичной и десятичной системами
- Визуальное объяснение процесса преобразования
- Поддержка чисел до 53 бит (более 9 квадриллионов)
- Копирование результатов одним щелчком
- Без регистрации, без оплаты, работает на любом устройстве
Независимо от того, отлаживаете ли вы сетевые конфигурации, устанавливаете права доступа к файлам или изучаете архитектуру компьютера, понимание преобразования между двоичной и десятичной системами - это фундаментальный навык. Этот инструмент делает это предельно простым.