Перевод в двоичную систему

Переводите числа между двоичной, восьмеричной, десятичной и шестнадцатеричной системами — с разбором по разрядам и поддержкой дробей.

из

основание 10

Результат появится здесь

основание 2

в
Перевод в двоичную систему: число 255 в десятичной слева, 11111111 в двоичной справа и разбор по разрядам снизу
Перевод в двоичную систему показывает не только ответ, но и разбор по разрядам — его и переписывают в тетрадь

Как перевести число вручную

В любой позиционной системе значение числа — это сумма цифр, умноженных на основание в степени разряда:

N=i=0n1dibiN = \sum_{i=0}^{n-1} d_i \cdot b^{i}

Отсюда обратный перевод: 1010 в двоичной — это 1·8 + 0·4 + 1·2 + 0·1, то есть 10. В другую сторону считают делением: число делят на основание, записывают остатки и читают их снизу вверх. Разбор под результатом показывает именно первый способ — его и переписывают в тетрадь, потому что ответ без решения не засчитывают.

Одна шестнадцатеричная цифра — четыре двоичных

Шестнадцать — это два в четвёртой степени, поэтому каждая цифра шестнадцатеричной записи ровно соответствует четырём двоичным разрядам, и переводить между ними можно по таблице, без арифметики. Ради этого системы и придумали: цвет #FF8800 человек прочитает, а те же двадцать четыре бита подряд — нет.

ДесятичнаяДвоичнаяВосьмеричнаяШестнадцатеричная
0000000
5010155
81000108
10101012a
15111117f
16100002010
25511111111377ff

Почему 0,1 не переводится точно

Дробь конечна в системе, основание которой делится на знаменатель этой дроби. Десятая часть в двоичной системе бесконечна и периодична — как одна треть в десятичной. Отсюда знаменитая странность программирования: 0.1 + 0.2 в большинстве языков даёт 0.30000000000000004, потому что ни одно из слагаемых не хранится точно. Инструмент показывает двенадцать знаков дробной части и обрывает счёт — дальше идёт шум округления, а не цифры числа.

Где это встречается

Шестнадцатеричные числа попадаются чаще, чем кажется: цвета в CSS, коды символов Unicode, адреса памяти в отладчике, контрольные суммы файлов. Если нужен именно цвет, удобнее конвертер цветов: он покажет HEX вместе с RGB и HSL. Для дробей и процентов — калькулятор дробей.

Похожие инструменты

Другие полезные инструменты из той же категории

Часто задаваемые вопросы

Делите число на 2 и записывайте остатки, пока частное не станет нулём, — затем прочитайте остатки снизу вверх. Например, 10 даёт остатки 0, 1, 0, 1, то есть 1010. Обратный перевод проще: каждая цифра умножается на 2 в степени своего разряда, и произведения складываются. Инструмент показывает эту раскладку под ответом, чтобы решение можно было переписать в тетрадь.

Цифр в ней шестнадцать, а привычных знаков только десять, поэтому недостающие шесть обозначили буквами: A — это 10, B — 11 и так далее до F — 15. Регистр значения не имеет, ff и FF — одно и то же число 255.

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

Целая часть считается в целочисленной арифметике произвольной длины, поэтому ограничения по разрядности нет: 64 единицы в двоичной записи переведутся точно, без потери младших разрядов. Обычные калькуляторы на таких числах уже округляют.

Восьмеричная и шестнадцатеричная — это короткая запись двоичной: одна шестнадцатеричная цифра заменяет ровно четыре двоичных, поэтому цвет #FF8800 читается человеком, а 111111111000100000000000 — нет. По той же причине в шестнадцатеричном виде показывают адреса памяти и коды символов.