Перевод из двоичной в десятичную систему: как читать двоичный код
Чтобы перевести число из двоичной системы в десятичную, подпишите над цифрами справа налево степени двойки (1, 2, 4, 8, 16, 32, 64, 128) и сложите те, что стоят над единицами. Так, 1101 — это 8 + 4 + 1 = 13, а байт 01000001 — 64 + 1 = 65, код заглавной латинской буквы A.

Двоичный код выглядит как бесконечная цепочка нулей и единиц, но это обычная позиционная система, только с двумя цифрами. Ниже — как прочитать байт, как переводить из двоичной в десятичную и обратно на разобранных примерах, почему шестнадцатеричная система — это двоичная, разбитая на четвёрки, и как буква превращается в восемь битов. Каждый пример можно проверить в бесплатном конвертере систем счисления VITON13 SCHOOL.
Главные идеи
- Двоичная система — с основанием 2: каждый разряд вдвое весомее соседнего справа, поэтому восемь разрядов байта стоят 128, 64, 32, 16, 8, 4, 2 и 1.
- Из двоичной в десятичную — сложить веса разрядов под единицами; из десятичной в двоичную — делить на 2 и читать остатки от последнего к первому.
- Одна шестнадцатеричная цифра — это ровно четыре бита, поэтому байт записывается двумя цифрами от 00 до FF; одна восьмеричная — три бита.
- Текст становится двоичным через коды символов: в ASCII и UTF-8 буква A — это 65, то есть 01000001.
Как читать числа в двоичной системе счисления
В двоичной системе счисления всего две цифры, 0 и 1, а вес разряда при сдвиге влево не умножается на десять, как в привычной десятичной, а удваивается. Одна двоичная цифра называется битом. Справа налево разряды стоят 1, 2, 4, 8, 16, 32, 64 и 128 — это степени двойки от 2⁰ до 2⁷.
Чтобы прочитать 1011, подпишите над цифрами веса 8, 4, 2, 1. Единицы стоят под 8, 2 и 1, значит, число равно 8 + 2 + 1 = 11. Пример подлиннее: 10011100 — это разряды 128, 64, 32, 16, 8, 4, 2, 1 с единицами под 128, 16, 8 и 4, то есть 128 + 16 + 8 + 4 = 156. Нули слева ничего не меняют: 00001011 — всё те же 11.
Восемь битов составляют байт, поэтому в байте помещается 2⁸ = 256 разных значений, от 00000000 (0) до 11111111 (255, то есть 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1). Четыре бита, половину байта, называют тетрадой, или полубайтом: это значения от 0 до 15. Каждый лишний бит удваивает количество: n битов дают 2ⁿ значений.
Как сделать перевод из двоичной в десятичную и обратно
Из двоичной в десятичную переводят двумя способами. Первый описан выше: сложить веса разрядов под единицами. Второй идёт слева направо и обходится без таблицы: начните с 0 и на каждом бите удваивайте результат и прибавляйте бит. Для 1101 получается 0 × 2 + 1 = 1, затем 1 × 2 + 1 = 3, затем 3 × 2 + 0 = 6, затем 6 × 2 + 1 = 13.
Из десятичной в двоичную переводят последовательным делением на 2. Разделите число на 2 и запишите остаток, 0 или 1; частное снова разделите на 2 и остановитесь, когда частное станет нулём. Остатки, прочитанные от последнего к первому, и есть двоичная запись. Для 13: 13 : 2 = 6, остаток 1; 6 : 2 = 3, остаток 0; 3 : 2 = 1, остаток 1; 1 : 2 = 0, остаток 1 — значит, 13 = 1101.
Пример побольше, 156: 156 : 2 = 78, ост. 0; 78 : 2 = 39, ост. 0; 39 : 2 = 19, ост. 1; 19 : 2 = 9, ост. 1; 9 : 2 = 4, ост. 1; 4 : 2 = 2, ост. 0; 2 : 2 = 1, ост. 0; 1 : 2 = 0, ост. 1. Снизу вверх остатки дают 10011100 — тот самый байт, который мы читали в первом разделе. Первый остаток всегда становится крайним правым битом, тем, что стоит 1.
Что такое шестнадцатеричная система счисления и как текст становится двоичным
Шестнадцатеричная система счисления имеет основание 16: после цифр от 0 до 9 идут буквы A, B, C, D, E и F, которые означают числа от 10 до 15. Поскольку 16 = 2⁴, одна шестнадцатеричная цифра — это ровно четыре бита, и двоичное число переводится в неё разбиением на четвёрки справа: 1001 1100 — это 9 и C, то есть 156 = 9C, часто пишут 0x9C. Байт всегда записывается двумя такими цифрами, от 00 до FF, и FF = 255. Восьмеричная система делает то же самое тройками, потому что 8 = 2³: 010 011 100 — это 2, 3, 4, то есть 156 = 234 в восьмеричной.
Текст превращается в биты через таблицу кодов символов. В ASCII и в UTF-8, где первые 128 кодов ASCII сохранены как одиночные байты, заглавная латинская A — это 65, B — 66, строчная a — 97, пробел — 32. Значит, A хранится как 01000001, a — как 01100001, а слово Hi — как два байта, 01001000 01101001, то есть 72 и 105.
Символы за пределами этого набора занимают в UTF-8 больше байтов — всего от одного до четырёх. Кириллица, как и греческий, иврит, арабское письмо и большинство латинских букв с диакритикой, занимает два байта: русская Я — это 11010000 10101111 (D0 AF в шестнадцатеричной записи). Большинство китайских, японских и корейских иероглифов занимают три байта, эмодзи — четыре.
Как проверить перевод в онлайн-конвертере
Бесплатный конвертер систем счисления VITON13 SCHOOL переводит числа между двоичной, десятичной, шестнадцатеричной и восьмеричной системами и показывает решение. Введите число в любой из четырёх, и оно появится в трёх остальных вместе с ходом решения — его удобно сверять строчка за строчкой со своими выкладками на бумаге.
Потом переключитесь на текст: конвертер переводит слова в двоичный код через UTF-8 и двоичный код обратно в текст. Попробуйте A, затем Hi, затем русское слово и посмотрите, сколько байтов занимает каждый символ. А когда дойдёте до отрицательных чисел, там же есть дополнительный код — обычный способ, которым компьютеры хранят отрицательные целые числа.
Простыми словами
Двоичное число похоже на ряд выключателей, где каждый следующий слева весит вдвое больше соседа справа. Чтобы прочитать число, сложите веса включённых; чтобы записать число, включайте самые крупные веса, которые ещё помещаются.
Попробуйте сами
Без калькулятора переведите 01100001 в десятичную систему, а потом проверьте ответ в конвертере.
Ожидаемый результат
Единицы стоят под 64, 32 и 1, поэтому ответ — 97; конвертер покажет то же число с решением, а в режиме текста байт 01100001 — это строчная латинская a.
Проверьте себя: Как записать 25 в двоичной системе, если делить на 2?
11001. 25 : 2 = 12, ост. 1; 12 : 2 = 6, ост. 0; 6 : 2 = 3, ост. 0; 3 : 2 = 1, ост. 1; 1 : 2 = 0, ост. 1. Читаем остатки от последнего к первому: 1 1 0 0 1. Проверка: 16 + 8 + 1 = 25.
Вопросы и ответы
Чему равно 11111111 в десятичной системе?
255: это сумма 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1, наибольшее число, которое помещается в один байт, в шестнадцатеричной записи — FF. Следующему числу, 256, нужно уже девять битов: 100000000.
Как перевести шестнадцатеричное число в двоичное?
Замените каждую шестнадцатеричную цифру её четырьмя битами. 2F превращается в 0010 1111, то есть 00101111, а это 32 + 8 + 4 + 2 + 1 = 47 в десятичной.
Подпишите над любым байтом веса от 128 до 1 и сложите те, что над единицами, а потом откройте конвертер систем счисления VITON13 SCHOOL и проверяйте ответы вместе с решением, пока байт не начнёт читаться с одного взгляда.
Источники и дальнейшее чтение
- Wikipedia: Binary number (place values, conversion by repeated division by 2) ↗Источники проверены:
- Wikipedia: Hexadecimal (base 16, one digit for every four bits) ↗Источники проверены:
- Wikipedia: UTF-8 (one to four bytes per character, ASCII kept as single bytes) ↗Источники проверены: