Перевод из двоичной системы в десятичную и обратно
Конвертер переводит число из двоичной записи в десятичную и в обратную сторону. Введите значение, основания уже выставлены - ответ появится сразу, а под ним разбор по шагам с теми цифрами, которые вы ввели.
- считает на длинной арифметике: число из сотни разрядов переведётся точно, без округления;
- кнопка «Поменять местами» подставляет ответ в поле ввода и разворачивает перевод - так проверяют результат;
- минус сохраняется, дробную часть инструмент не берёт;
- рядом с ответом видно, как то же число выглядит в восьмеричной и шестнадцатеричной записи.
Как перевести из двоичной в десятичную
Каждый разряд двоичного числа - это степень двойки, а позиции считают с нуля справа налево. Число раскладывают по разрядам и складывают то, что получилось. Для 1011 расчёт такой: 1·23 + 0·22 + 1·21 + 1·20 = 8 + 0 + 2 + 1 = 11.
С длинным числом порядок тот же. В записи 11001011 восемь разрядов, старший стоит на восьмой позиции слева и весит 128: сумма единичных разрядов даёт 128 + 64 + 8 + 2 + 1 = 203. Нулевые разряды пропускают, они ничего не добавляют - на практике достаточно выписать веса под единицами и сложить их.
Есть способ короче, если считаете в уме. Идите по цифрам слева направо и каждый раз удваивайте накопленное, прибавляя очередную цифру: для 1011 это 1, потом 1·2 + 0 = 2, дальше 2·2 + 1 = 5 и 5·2 + 1 = 11. Степени вспоминать не нужно, а результат тот же.
Как перевести из десятичной в двоичную
Обратный перевод делают делением с остатком. Число делят на 2, остаток записывают, частное снова делят - и так до нуля. Для 203 цепочка выглядит так:
- 203 : 2 = 101, остаток 1;
- 101 : 2 = 50, остаток 1;
- 50 : 2 = 25, остаток 0;
- 25 : 2 = 12, остаток 1;
- 12 : 2 = 6, остаток 0;
- 6 : 2 = 3, остаток 0;
- 3 : 2 = 1, остаток 1;
- 1 : 2 = 0, остаток 1.
Остатки читают снизу вверх, от последнего к первому: 11001011. Это и есть ответ - то самое число, с которого начинали в первой главе.
Второй способ подходит для чисел до тысячи. Возьмите наибольшую степень двойки, которая помещается в число, и вычитайте по очереди: 203 - 128 = 75, 75 - 64 = 11, 11 - 8 = 3, 3 - 2 = 1, 1 - 1 = 0. Единицы ставят на местах использованных степеней, нули - на остальных.
Таблица соответствий и степени двойки
Первые шестнадцать чисел стоит держать в голове: на них опираются оба способа перевода, а в hex каждое из них занимает один разряд.
| Десятичное | Двоичное | Десятичное | Двоичное |
|---|---|---|---|
| 1 | 1 | 9 | 1001 |
| 2 | 10 | 10 | 1010 |
| 3 | 11 | 16 | 10000 |
| 4 | 100 | 32 | 100000 |
| 5 | 101 | 64 | 1000000 |
| 6 | 110 | 100 | 1100100 |
| 7 | 111 | 128 | 10000000 |
| 8 | 1000 | 255 | 11111111 |
Веса разрядов - это степени двойки: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024. Дальше идут 2048 и 4096; каждый следующий разряд вдвое тяжелее предыдущего, поэтому запись растёт быстро. Трёхзначное десятичное число занимает до десяти двоичных разрядов, а привычный килобайт - это 210 байт.
Где встречается двоичная запись
Чаще всего перевод нужен в задачах по информатике: в школьной программе тема идёт в 8 классе, а на экзамене без неё не обойтись ни в одном задании про кодирование. Но и вне класса запись из нулей и единиц попадается регулярно.
- Маска подсети. Привычное 255.255.255.0 в двоичном виде - это 24 единицы подряд и восемь нулей, отсюда и запись /24.
- Права на файл. Команда chmod 755 раскладывается по три бита на группу: 7 это 111, то есть чтение, запись и запуск, а 5 это 101 - чтение и запуск.
- Флаги и настройки. Один бит хранит одно состояние: включено или выключено, поэтому набор из восьми переключателей умещается в одно число от 0 до 255.
- Объём памяти. Байт вмещает 256 значений, два байта - 65 536: границы диапазонов у типов данных задаются степенями двойки.
Двоично-десятичный код - это другое
Запрос про двоично-десятичную систему часто приводит на страницы про перевод, хотя речь о другом. В двоично-десятичном коде каждую цифру числа кодируют отдельной четвёркой бит: 25 превращается в 0010 0101. Полный перевод того же числа в двоичную систему даёт 11001 - пять разрядов вместо восьми.
Такой код применяют там, где число нужно показать на индикаторе поразрядно: электронные часы, весы, кассовые табло. Считать в нём неудобно, зато вывод цифры на экран не требует деления. Конвертер выше делает обычный перевод, а не кодирование по цифрам.
Частые ошибки
- Остатки собраны сверху вниз. При делении на 2 ответ читают от последнего остатка к первому, иначе число выйдет перевёрнутым.
- Позиции разрядов посчитаны с единицы. Крайний правый разряд имеет номер 0 и вес 1, а не 2.
- Пропущен нулевой разряд. В записи 1001 четыре позиции: если потерять нули в середине, вместо девяти получится тройка.
- Число прочитано не в той системе. Запись 11 в двоичной системе равна трём, а 110 - шести, а не одиннадцати и ста десяти.
- Дробная часть переведена делением. Целую часть делят на 2, дробную умножают на 2 и собирают целые части сверху вниз.
Часто задаваемые вопросы
Восемь: 255 в двоичной записи это 11111111, ровно байт. Число 256 уже требует девяти бит - 100000000.
Нижний индекс показывает основание: 1010 записано в двоичной системе и равно десяти. Без индекса ту же строку можно прочитать как тысячу десять в десятичной записи.
Разряды после запятой считают отрицательными степенями двойки: 0,101 это 0,5 + 0 + 0,125 = 0,625. Конвертер выше работает только с целой частью.
Транзистор различает два устойчивых состояния - есть напряжение или нет. Две цифры ложатся на такую схему без промежуточных уровней, поэтому вся память и арифметика построены на нулях и единицах.
Переведите ответ обратно: кнопка «Поменять местами» подставляет результат в поле ввода и меняет основания. Если вернулось исходное число, перевод верный.
Для разового расчёта хватит инструмента выше. Перевод между всеми четырьмя основаниями собран в конвертере систем счисления, а про кодирование текста и чисел нулями и единицами написано на странице перевода в двоичный код.