Двоичная, десятичная и шестнадцатеричная системы: как переводить из одной в другую

Перевод между системами счисления кажется магией, пока не поймёшь, что идея всегда одна: каждая цифра имеет вес в зависимости от своего места. Здесь вы научитесь переводить из двоичной в десятичную и обратно вручную, спокойно читать шестнадцатеричную запись и переводить текст в биты, с готовыми расчётами и таблицей от 0 до 15 под рукой.

Обновлено:

Что такое позиционная система счисления

В десятичном числе 4 095 цифра 4 означает не 4, а 4 000, потому что стоит в разряде тысяч. Каждая позиция умножает цифру на степень числа 10 (1, 10, 100, 1 000…). Это и есть позиционная система, а основание — это количество используемых различных цифр: в десятичной их десять.

Двоичная система устроена так же, но с основанием 2: существуют только 0 и 1, а каждый разряд вдвое больше предыдущего. В шестнадцатеричной системе основание 16: шестнадцать цифр — это 0–9 и буквы A–F, а каждый разряд в 16 раз больше предыдущего. Компьютеры работают в двоичной системе, потому что схеме достаточно различать два состояния (выключено и включено), а шестнадцатеричная запись — это короткий способ записывать эти биты.

Сколько стоит каждый разряд. Если выучить наизусть степени двойки до 128, почти все расчёты станут проще.
Позиция (справа налево)Значение в двоичнойЗначение в шестнадцатеричной
1-я11
2-я216
3-я4256
4-я84 096
5-я1665 536
6-я321 048 576
7-я6416 777 216
8-я128268 435 456

Из двоичной в десятичную вручную

Под каждой цифрой записывают вес её разряда и складывают только те разряды, где стоит 1. Пример с числом 1101: справа налево разряды весят 1, 2, 4 и 8.

  1. Запишите число, а под ним вес каждой позиции: 1 1 0 1 над 8 4 2 1.
  2. Посмотрите, что стоит в каждом разряде: 1 в разряде восьмёрки, 1 в разряде четвёрки, 0 в разряде двойки и 1 в разряде единицы.
  3. Пропустите разряды с 0 (здесь это разряд двойки).
  4. Сложите: 8 + 4 + 0 + 1 = 13. Значит, 1101 в двоичной системе — это 13 в десятичной.

С большим количеством цифр всё так же: 11111111 — это 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, наибольшее значение, которое помещается в 8 бит. А 10110110 — это 128 + 32 + 16 + 4 + 2 = 182.

Из десятичной в двоичную: последовательное деление

Число делят на 2 снова и снова, записывая остаток от каждого деления (всегда 0 или 1), пока частное не станет равным 0. Остатки, прочитанные снизу вверх, и образуют двоичное число. Пример с числом 45:

Если читать остатки снизу вверх, получится 101101. Для проверки сложите: 32 + 8 + 4 + 1 = 45.

Есть и другой способ, который многим нравится больше: вычитать степени двойки от большей к меньшей. Для 200: помещается 128 (остаётся 72), помещается 64 (остаётся 8), не помещаются 32 и 16, но помещается 8 (остаётся 0). Использованные разряды — 128, 64 и 8, значит, 200 = 11001000.

Шестнадцатеричная система: шестнадцать цифр и таблица под рукой

Поскольку цифр для чисел от 10 до 15 нет, используют буквы A, B, C, D, E и F. Одна шестнадцатеричная цифра соответствует ровно четырём битам (это «полубайт», nibble), и именно поэтому система так удобна: байт, то есть 8 бит, записывается всего двумя шестнадцатеричными цифрами.

Чтобы перевести число из шестнадцатеричной системы в десятичную, умножьте каждую цифру на степень числа 16 её разряда и сложите. Например, 3F = 3 × 16 + 15 = 63, а A3 = 10 × 16 + 3 = 163.

От 0 до 15 в четырёх системах, которые показывает инструмент.
ДесятичнаяДвоичная (4 бита)ВосьмеричнаяШестнадцатеричная
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Зачем нужна шестнадцатеричная запись: байты, цвета и адреса

Байт — это 8 бит, он принимает значения от 0 до 255 (от 00000000 до 11111111). Записывать биты вручную долго и легко ошибиться; в шестнадцатеричной системе тот же байт — это два символа, от 00 до FF. Чтобы перевести двоичное число в шестнадцатеричное, разбейте биты на группы по четыре справа и замените каждую группу цифрой из таблицы. Пример: 11010111 разбивается на 1101 и 0111, это D и 7, значит, число равно D7. В десятичной системе это 13 × 16 + 7 = 215.

Самый известный пример — цвета в вебе. В #FF8800 три байта: FF для красного (255), 88 для зелёного (136) и 00 для синего (0). Это насыщенный оранжевый: весь красный, чуть больше половины зелёного и ни капли синего. Шестнадцатеричная запись встречается и в адресах памяти, кодах ошибок и сетевых идентификаторах.

От текста к двоичному коду через ASCII

Компьютер хранит каждую букву как число, а это число — как биты. В таблице ASCII буква A — это 65, а в двоичном виде из 8 бит — 01000001. Слово «Hi» состоит из двух букв: H — это 72 (01001000), а i — 105 (01101001), поэтому записывается оно как 01001000 01101001. Слово «Hola» — это 72, 111, 108 и 97, то есть 01001000 01101111 01101100 01100001, или в шестнадцатеричной записи 48 6F 6C 61.

Инструмент использует кодировку UTF-8: для основных латинских букв каждый символ занимает один байт из 8 бит, а русская буква, буква с диакритикой или эмодзи занимают несколько байт, поэтому дают больше 8 бит. Например, буква «я» занимает два байта: 11010001 10001111 (D1 8F в шестнадцатеричной записи).

Как сделать всё это с помощью инструмента

Конвертер «Двоичная, десятичная и шестнадцатеричная» поможет проверить ваши расчёты вручную или без ошибок перевести длинные числа.

  1. Введите число в поле его системы: «Десятичная (основание 10)», «Двоичная (основание 2)», восьмеричная или «Шестнадцатеричная (основание 16)». Остальные три заполнятся сами.
  2. Если цифра не подходит для системы (например, 2 в двоичной), инструмент предупредит вас.
  3. Для текста введите его в поле «Текст» и посмотрите «Двоичный код (8 бит на символ)» и шестнадцатеричный код по байтам. Можно также вставить биты группами по 8, чтобы вернуться к тексту.
  4. Для необычных систем используйте «Любая система счисления (от 2 до 36)»: выберите исходную систему, целевую и введите число.

Ограничения: инструмент переводит только целые неотрицательные числа (без дробной части и знака) и не добавляет нули слева за вас, так что если нужны ровно 8 бит, дополните вручную (13 — это 00001101). Всё, что вы вводите, остаётся в вашем браузере.

Частые ошибки

Решённые задачи для тренировки

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

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

Как перевести 1101 из двоичной в десятичную?

Сложите веса разрядов, где стоит 1: 8 + 4 + 1 = 13. Вторая цифра справа — 0, поэтому 2 не прибавляется.

Сколько будет 255 в двоичной и шестнадцатеричной системах?

255 — это 11111111 в двоичной и FF в шестнадцатеричной системе. Это наибольшее значение, которое помещается в байт из 8 бит.

Почему в шестнадцатеричной системе используются буквы?

Потому что нужно шестнадцать разных символов, а десятичная система даёт только десять (0–9). Поэтому A означает 10, B — 11, C — 12, D — 13, E — 14 и F — 15.

Сколько разных чисел можно записать 8 битами?

256, от 0 до 255. В общем случае n битами можно представить 2 в степени n значений.

Переводит ли инструмент отрицательные числа или числа с дробной частью?

Нет, только целые неотрицательные числа. Для текста он использует UTF-8, поэтому кириллица, буквы с диакритикой и эмодзи дают больше 8 бит.