youcalc Все расчёты идут в браузере — ничего не уходит на сервер
Математика

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

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

Что переводим

Для систем выше десятичной цифры после девятки — буквы: A это 10, B это 11, F это 15. Регистр не важен.

Значения сохраняются в адресе страницы — ссылку можно отправить кому угодно.

Переводятся целые числа. Дробную часть переводят другим действием — умножением на основание, — и она часто получается бесконечной: одна десятая в двоичной системе так же непредставима, как одна треть в десятичной.

Как считается

В десятичную: каждая цифра × основание в степени разряда, всё сложитьИз десятичной: делим на основание, остатки читаем снизу вверхМежду 2, 8 и 16: группируем двоичные цифры по три или по четыре
Разряд
номер позиции справа налево, крайняя правая — нулевая
Остаток
он же очередная цифра ответа, но записанная с конца
Тетрада
четыре двоичные цифры — ровно одна шестнадцатеричная

Третья строка — не хитрость, а следствие: 8 = 2³ и 16 = 2⁴. Поэтому между двоичной, восьмеричной и шестнадцатеричной десятичная не нужна вовсе, и перевод делается в уме. Программисты пользуются именно этим, а в учебнике оно обычно спрятано в конце параграфа.

Пример расчёта

Переведём 172 в двоичную систему, а потом посмотрим на ответ с другой стороны.

172 ÷ 2
86, остаток 0
86 ÷ 2
43, остаток 0
43 ÷ 2
21, остаток 1
21 ÷ 2
10, остаток 1
10 ÷ 2
5, остаток 0
5 ÷ 2
2, остаток 1
2 ÷ 2
1, остаток 0
1 ÷ 2
0, остаток 1
Остатки снизу вверх
10101100

А теперь разобьём ответ по четыре цифры: 1010 и 1100. Это 10 и 12, то есть A и C — значит 172 в шестнадцатеричной системе равно AC. Ни одного деления на 16 не понадобилось. Разбивка по три цифры даёт 010 101 100, то есть 254 в восьмеричной.

Что влияет на результат

  • Направление перевода. В десятичную переводят развёрнутой записью — это просто раскрытие смысла цифр. Из десятичной переводят делением с остатком. Действия разные, и путать их — самая частая ошибка на контрольной.
  • Порядок остатков. Их выписывают снизу вверх, от последнего к первому. Записанные в порядке получения, они дают число задом наперёд, и проверка это сразу покажет.
  • Цифры выше девятки. В системах с основанием больше десяти цифрами становятся буквы: A это 10, B это 11, F это 15. В шестнадцатеричной цифр ровно шестнадцать — от 0 до F.
  • Родство двойки, восьмёрки и шестнадцати. Они степени двойки, поэтому переводятся друг в друга группировкой без деления. С десятичной так не выйдет: десять не степень двойки.
  • Длина записи. Чем меньше основание, тем длиннее число: 172 занимает три цифры в десятичной, восемь в двоичной и две в шестнадцатеричной. Поэтому байт и записывают двумя шестнадцатеричными цифрами, а не восемью двоичными.
  • Дробная часть. Переводится другим действием — умножением на основание, — и часто получается бесконечной. Одна десятая в двоичной системе непредставима так же, как одна треть в десятичной; отсюда и знаменитые ошибки округления в программировании.

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

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

Делить на два, записывая остатки, пока частное не станет нулём. Потом выписать остатки снизу вверх — это и есть ответ. Для 172 остатки получаются 0, 0, 1, 1, 0, 1, 0, 1, а прочитанные с конца дают 10101100.

Почему остатки читают снизу вверх

Потому что первое деление даёт младшую цифру, а не старшую. Разделив на два, мы отделяем последний разряд — тот, что стоит справа. Каждое следующее деление отделяет разряд левее. Поэтому в порядке получения остатки идут от конца числа к началу, и записывать их нужно в обратном порядке.

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

Развёрнутой записью: каждая цифра умножается на двойку в степени своего разряда, и всё складывается. Разряды считают справа налево начиная с нуля. Для 10101100 это 128 + 32 + 8 + 4 = 172. По сути вы просто раскрываете то, что запись и означала.

Как быстро перевести двоичное число в шестнадцатеричное

Разбить справа по четыре цифры и заменить каждую четвёрку одной шестнадцатеричной. 1010 1100 превращается в AC. Работает потому, что шестнадцать — это два в четвёртой степени, так что каждая тетрада двоичных цифр в точности соответствует одной шестнадцатеричной. Для восьмеричной то же самое, только группы по три.

Что означают буквы в шестнадцатеричной системе

Это цифры от десяти до пятнадцати: A равно 10, B — 11, C — 12, D — 13, E — 14, F — 15. Отдельных знаков для них не придумали, поэтому взяли начало латинского алфавита. Число FF означает 15 × 16 + 15, то есть 255 — максимальное значение одного байта.

Зачем вообще нужны другие системы счисления

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

Почему 0,1 нельзя точно записать в двоичной системе

По той же причине, по которой одну треть нельзя точно записать в десятичной. Конечной дробь получается тогда, когда знаменатель раскладывается на простые множители самого основания. У десятичной это 2 и 5, у двоичной — только 2. Одна десятая содержит в знаменателе пятёрку, поэтому в двоичной даёт бесконечную периодическую дробь. Отсюда и знаменитое 0,1 + 0,2 ≠ 0,3 в программировании.

Смежные калькуляторы