Как перевести двоичное число в десятичное

Иван Корнев·07.05.2026·5 мин

Чтобы перевести двоичное число в десятичное, нужно каждую цифру (бит) умножить на 2 в степени, соответствующей её позиции (начиная с 0 справа налево), и сложить полученные результаты. Например, двоичное число 101 равно $1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0 = 4 + 0 + 1 = 5$ в десятичной системе.

Этот метод является фундаментальным для понимания работы компьютеров, сетевой адресации и низкоуровневого программирования. Ниже подробно разобран алгоритм, способы ускорения расчётов и работа с дробными числами.

Краткая суть: Двоичная система использует основание 2. Позиция каждой единицы определяет её «вес» — степень двойки. Сумма весов всех единиц даёт десятичное значение.

Основной алгоритм перевода

Десятичная система, которой мы пользуемся в жизни, имеет основание 10. Двоичная — основание 2. В ней используются только две цифры: 0 и 1.

Пошаговая инструкция

  1. Запишите двоичное число.
  2. Пронумеруйте позиции битов справа налево, начиная с нуля. Это будут показатели степени для числа 2.
  3. Умножьте каждый бит на $2$ в степени его позиции.
    • Если бит равен 0, результат умножения всегда будет 0.
    • Если бит равен 1, результатом будет соответствующая степень двойки.
  4. Сложите все полученные значения.

Пример разбора

Переведём число 1101 в десятичную систему.

| Позиция (степень) | 3 | 2 | 1 | 0 | | :--- | :-: | :-: | :-: | :-: | | Бит | 1 | 1 | 0 | 1 | | Расчёт | $1 \cdot 2^3$ | $1 \cdot 2^2$ | $0 \cdot 2^1$ | $1 \cdot 2^0$ | | Значение | 8 | 4 | 0 | 1 |

Сумма: $8 + 4 + 0 + 1 = 13$. Ответ: $1101_2 = 13_{10}$.

Таблица степеней двойки для быстрого счёта

Для ускорения ручных вычислений полезно запомнить первые степени двойки. Это избавит от необходимости возводить 2 в степень каждый раз.

Степень ($n$)Значение ($2^n$)Примечание
01Начало отсчёта
12
24
38
416Часто используется в байтах
532
664
7128Максимальное значение одного байта (без знака) — 255
8256
9512
101024Килобайт (в информатике)

Лайфхак: Если вам нужно быстро оценить порядок числа, найдите старшую единицу (самую левую). Число будет немного больше, чем значение этой степени двойки. Например, в числе 100000 старшая единица стоит на позиции 5 ($2^5=32$). Значит, число чуть больше 32 (на самом деле ровно 32, так как остальные биты нули).

Перевод дробных двоичных чисел

Если в двоичной записи есть запятая (или точка), алгоритм меняется лишь тем, что степени для дробной части становятся отрицательными.

Правило нумерации:

  • Целая часть нумеруется справа налево: $0, 1, 2...$
  • Дробная часть нумеруется слева направо от запятой: $-1, -2, -3...$

Пример: $10.11_2$

  1. Целая часть (10):

    • $1 \cdot 2^1 = 2$
    • $0 \cdot 2^0 = 0$
    • Сумма целой части: $2$.
  2. Дробная часть (.11):

    • Первый бит после запятой: $1 \cdot 2^{-1} = 1 \cdot 0.5 = 0.5$
    • Второй бит после запятой: $1 \cdot 2^{-2} = 1 \cdot 0.25 = 0.25$
    • Сумма дробной части: $0.5 + 0.25 = 0.75$.
  3. Итог: $2 + 0.75 = 2.75$. Ответ: $10.11_2 = 2.75_{10}$.

Важно: Не все десятичные дроби можно точно представить в двоичной системе конечным набором цифр (аналогично тому, как $1/3$ в десятичной системе превращается в бесконечную $0.333...$). При обратном переводе (из десятичной в двоичную) это может приводить к ошибкам округления в программировании.

Альтернативный метод: Схема Горнера

Для длинных чисел удобнее использовать метод последовательного умножения (схема Горнера). Он позволяет считать «в уме», двигаясь слева направо.

Алгоритм:

  1. Начните с первого бита (самого левого).
  2. Умножьте текущее значение на 2 и прибавьте следующий бит.
  3. Повторяйте шаг 2 до конца числа.

Пример для $1101_2$:

  1. Берём первый бит: 1
  2. $1 \cdot 2 + 1 (\text{следующий бит}) = 3$
  3. $3 \cdot 2 + 0 (\text{следующий бит}) = 6$
  4. $6 \cdot 2 + 1 (\text{последний бит}) = 13$

Результат: 13. Этот метод хорош тем, что не требует запоминания степеней двойки и удобен для программной реализации.

Частые ошибки при переводе

  1. Неверный отсчёт позиций. Самая распространённая ошибка — начинать нумерацию степеней с 1 или считать слева направо. Помните: младший разряд (справа) всегда имеет степень 0.
  2. Игнорирование нулей. Нули не влияют на сумму, но они занимают позиции. Пропуск позиции сбивает нумерацию степеней для всех последующих единиц.
  3. Путаница с дробной частью. Часто забывают, что степени после запятой отрицательные, и пытаются считать их как положительные ($2^1, 2^2$), получая завышенный результат.
  4. Опечатки в исходных данных. В двоичной системе могут быть только 0 и 1. Если вы встретили цифру 2 или выше, значит, исходное число записано неверно или это не двоичная система.

FAQ

Как быстро перевести большое двоичное число? Разбейте число на группы по 4 бита (тетрады) справа налево. Каждую тетраду переведите в шестнадцатеричную цифру (0–F), а затем используйте калькулятор или таблицу для перевода из HEX в DEC. Это быстрее, чем считать степени двойки для 20+ бит.

Почему компьютеры используют двоичную систему? Технически проще реализовать два устойчивых состояния электрического сигнала: «есть ток» (1) и «нет тока» (0). Это обеспечивает высокую надёжность хранения и обработки данных по сравнению с системами, имеющими больше оснований.

Можно ли перевести отрицательные двоичные числа? Да, но обычно используется дополнительный код. Старший бит указывает на знак. Для перевода такого числа в десятичное нужно сначала инвертировать биты, прибавить 1, перевести полученное положительное число обычным способом и добавить знак минус.

Есть ли онлайн-калькуляторы для проверки? Да, любой инженерный калькулятор в режиме «Программист» (Programmer mode) поддерживает конвертацию между BIN, DEC, OCT и HEX. В Python это делается функцией int('1010', 2).