VITON13School
Бесплатные инструменты школы

Перевод из двоичной в десятичную систему: как читать двоичный код

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

Автор: , основатель VITON13 SCHOOL
Два рулона перфоленты, узкий светло-жёлтый и более широкий розовый, с рядами отверстий на белом фоне

Двоичный код выглядит как бесконечная цепочка нулей и единиц, но это обычная позиционная система, только с двумя цифрами. Ниже — как прочитать байт, как переводить из двоичной в десятичную и обратно на разобранных примерах, почему шестнадцатеричная система — это двоичная, разбитая на четвёрки, и как буква превращается в восемь битов. Каждый пример можно проверить в бесплатном конвертере систем счисления 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ⁿ значений.

[1]

Как сделать перевод из двоичной в десятичную и обратно

Из двоичной в десятичную переводят двумя способами. Первый описан выше: сложить веса разрядов под единицами. Второй идёт слева направо и обходится без таблицы: начните с 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, затем русское слово и посмотрите, сколько байтов занимает каждый символ. А когда дойдёте до отрицательных чисел, там же есть дополнительный код — обычный способ, которым компьютеры хранят отрицательные целые числа.

[2][3]

Простыми словами

Двоичное число похоже на ряд выключателей, где каждый следующий слева весит вдвое больше соседа справа. Чтобы прочитать число, сложите веса включённых; чтобы записать число, включайте самые крупные веса, которые ещё помещаются.

Попробуйте сами

Без калькулятора переведите 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 и проверяйте ответы вместе с решением, пока байт не начнёт читаться с одного взгляда.

Источники и дальнейшее чтение

  1. Wikipedia: Binary number (place values, conversion by repeated division by 2) ↗Источники проверены:
  2. Wikipedia: Hexadecimal (base 16, one digit for every four bits) ↗Источники проверены:
  3. Wikipedia: UTF-8 (one to four bytes per character, ASCII kept as single bytes) ↗Источники проверены: