Конвертер двоичных чисел в десятичные

→
Десятичное = сумма битов, умноженных на 2 в степени их позиции

Из двоичной в десятичную: возвращаем битам смысл

Что делает эта конвертация

Инструмент читает строку из нулей и единиц как число в основании 2 и пересказывает его в основании 10. Это направление нужно, когда значение на экране уже в машинном формате — дамп регистра, маска, байт флагов, — а вопрос вы задаёте человеческий: например, перешло ли значение через порог.

Метод взвешенной суммы

Каждый двоичный разряд означает степень 2 по своей позиции справа: 1, 2, 4, 8 и дальше. Сложите веса тех позиций, где стоит единица. Для 10011100 это 128, 16, 8 и 4, то есть 156. Как только первые веса запомнены — 1, 2, 4, 8, 16, 32, 64, 128, — вся работа сводится к короткому сложению.

Таблица перевода из двоичной системы в десятичную

Частые битовые шаблоны и их десятичные значения. Запоминать стоит строки из одних единиц: каждая из них на 1 меньше следующей степени 2, поэтому 255 и 65535 встречаются в вычислениях повсюду.

ДвоичнаяДесятичная
00
11
102
113
101010
111115
1000016
10101042
11111111255
100000000256

Чтение байта флагов

Байт состояния — это не столько число, сколько восемь ответов «да или нет», упакованных в одно значение. Перевод в десятичную даёт компактный идентификатор, который удобно сравнивать и писать в журнал, а отдельные биты объясняют, что именно произошло. Полезны оба чтения, и конвертация — мост между таблицей из документации, где расписаны биты, и логом, куда попадает десятичное число.

Следите за ведущими нулями

Ведущие нули не меняют значение — 0011 и 11 равны трём, — но меняют ширину поля, а ширина как раз и говорит, один это байт или четыре. Когда значение скопировано из поля фиксированной длины, сохраняйте дополнение в записях, хотя конвертер его и отбрасывает.

Частые вопросы

Как читать двоичное число в уме?

Напишите над разрядами веса 128, 64, 32, 16, 8, 4, 2, 1 слева направо для восьмибитного числа, затем сложите веса над каждой единицей. Для 10011100 получится 128 + 16 + 8 + 4 = 156. Тренировки на восьми битах покрывают почти все бытовые случаи.

Почему 11111111 равно 255, а не 256?

Потому что восемь битов представляют 256 разных значений, считая от нуля, значит наибольшее из них — 255. В общем случае n битов дают 2 в степени n минус 1. Эта разница в единицу и объясняет, почему байт вмещает 256 значений, но само число 256 в один байт не помещается.

Можно вставить двоичный код с пробелами между байтами?

Да. Пробелы, табуляции и подчёркивания игнорируются, поэтому строка из терминала или из дампа памяти конвертируется без предварительной чистки. Группировка битов по четыре или по восемь — только подсказка для глаза, сама по себе она ничего не значит.

Ведущая единица означает отрицательное число?

Только если вы заранее договорились, что поле знаковое и записано в дополнительном коде, а это свойство формата, а не самих битов. Само по себе 11111111 — просто 255. Конвертер считает любой ввод неотрицательной величиной, пока вы явно не поставите минус.

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

Достаточно длинная для любого значения, которое вы решите вставить: расчёты идут в точной целочисленной арифметике, а не в плавающей точке, поэтому с ростом длины точность не падает, как у калькулятора. Слишком длинный ввод отклоняется с понятным сообщением, а не обрезается молча.

Скопируйте приведённый ниже код и вставьте его на свой сайт, чтобы добавить этот конвертер.

<!-- Двоичная в десятичную -->
<iframe src="https://unitflow.net/ru/embed/binary-to-decimal" title="Двоичная в десятичную" width="100%" height="420" loading="lazy" style="border:0;max-width:100%;display:block"></iframe>
<p><a href="https://unitflow.net/ru/binary-to-decimal" target="_blank" rel="noopener">Работает на UnitFlow</a></p>