Как переводить числа из десятичной системы в двоичную: алгоритм, примеры целых и дробных чисел для ЕГЭ

Как переводить числа из десятичной системы в двоичную: алгоритм, примеры целых и дробных чисел для ЕГЭ
Коротко

Чтобы перевести число из десятичной системы в двоичную, нужны два алгоритма.

  • Целая часть — делят на 2, пока частное не станет нулём, а остатки записывают снизу вверх.
  • Дробная часть — умножают на 2, а целые части результатов записывают сверху вниз.
  • ЕГЭ по информатике — системы счисления встречаются в нескольких заданиях.
  • Типы заданий — есть задания именно на позиционные системы счисления, а в задачах на алгоритмы и программирование перевод бывает вспомогательным шагом.
  • Результат — если ты уверенно владеешь обоими алгоритмами, эти шаги перестают отнимать время.

Как это спрашивают на экзамене

Типовые формулировки

Формулировки в тренировочных вариантах различаются, но за большинством стоит один из двух алгоритмов. Например:

Переведите число 25₁₀ в двоичную систему.
Сколько единиц в двоичной записи числа 127₁₀?
Запишите число 0,375₁₀ в двоичной системе.

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

  • Сравнение: числа из разных систем удобнее сравнивать, переведя их в десятичную.
  • Количество разрядов: иногда находят без полного перевода — достаточно определить, между какими степенями двойки лежит число.

Алгоритм для целых чисел: деление на 2

Начнём с целых чисел: этот алгоритм нужен чаще всего.

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

Отдельно про ноль: 0₁₀ = 0₂.

Если переводишь программой с циклом «пока число больше 0», для нуля такой цикл не выполнится ни разу и не даст ни одной цифры, поэтому этот случай обрабатывают отдельно.

Главная ловушка — направление чтения. Если прочитать остатки в порядке получения, ответ окажется «перевёрнутым».

Пример: допустим, нужно перевести 13₁₀:

Шаг Деление Частное Остаток
1 13 : 2 = 6 ост. 1 6 1
2 6 : 2 = 3 ост. 0 3 0
3 3 : 2 = 1 ост. 1 1 1
4 1 : 2 = 0 ост. 1 0 1

Читаем остатки снизу вверх: 1101₂.

Проверь результат обратным переводом: 1101₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13₁₀. Сошлось.

Алгоритм для дробных чисел: умножение на 2

С дробной частью всё устроено зеркально: вместо деления здесь умножение.

  1. Умножаем дробную часть на 2.
  2. Целую часть результата (0 или 1) записываем как очередную цифру двоичной дроби.
  3. Дробную часть результата снова умножаем на 2.
  4. Повторяем, пока дробная часть не станет 0 (дробь конечная), пока не начнётся повторение (дробь периодическая) или пока не получим нужное число разрядов.

Обрати внимание: здесь целые части читают сверху вниз, в порядке получения.

Направление противоположно алгоритму для целых чисел, и как раз на этом ошибаются.

Пример: переводим 0,625₁₀.

Шаг Умножение Целая часть Дробная часть
1 0,625 × 2 = 1,25 1 0,25
2 0,25 × 2 = 0,5 0 0,5
3 0,5 × 2 = 1,0 1 0

Читаем целые части сверху вниз: 0,101₂.

Проверка: 0,101₂ = 1×2⁻¹ + 0×2⁻² + 1×2⁻³ = 0,5 + 0 + 0,125 = 0,625₁₀.

Смешанные числа: целая и дробная части отдельно

Если в числе есть и целая, и дробная часть, каждую переводят отдельно, а результаты объединяют через запятую. Смешивать два алгоритма в одном расчёте нельзя.

Пример: возьмём 13,625₁₀.

  • Целая часть: 13₁₀ = 1101₂, делением на 2, остатки снизу вверх;
  • Дробная часть: 0,625₁₀ = 0,101₂, умножением на 2, целые части сверху вниз;
  • Вместе: 13,625₁₀ = 1101,101₂.

Проверка: 1101,101₂ = 8 + 4 + 0 + 1 + 0,5 + 0 + 0,125 = 13,625₁₀.

Особый случай: бесконечные двоичные дроби

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

Классический пример: 0,1₁₀ = 0,0001100110011…₂.

При умножении на 2 дробная часть не обращается в ноль, а цифры повторяются с периодом 0011.

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

Сокращать нужно обязательно: например, 3/6 выглядит так, будто в знаменателе есть множитель 3, но 3/6 = 1/2, и двоичная запись конечна.

Примеры:

  • 0,5 = 1/2 = 2⁻¹;
  • 0,25 = 1/4 = 2⁻²;
  • 0,125 = 1/8 = 2⁻³;
  • 0,625 = 5/8 = 5×2⁻³.

У 0,1 = 1/10 дробь уже несократима, а в знаменателе есть множитель 5, поэтому двоичная запись выходит бесконечной.

Бесконечную дробь записывают с заданным числом двоичных разрядов. Это делают двумя способами:

  • отсечение: лишние разряды просто отбрасывают;
  • округление: смотрят на следующий бит после последнего сохраняемого. Если он равен 1, последний разряд увеличивают на 1; если 0 — отбрасывают остаток, как при отсечении.

Пример: 0,1₁₀ с четырьмя разрядами после запятой.

  • Отсечение даёт 0,0001₂.
  • Пятый бит равен 1, поэтому при округлении получаем 0,0010₂.

Обратный перевод: проверка (из двоичной в десятичную)

Любой перевод стоит проверять обратным переводом. Это полминуты, а страхует он от потери балла.

Каждую цифру двоичного числа умножают на 2 в степени её позиции, результаты складывают.

  • Целая часть: позиции считают справа налево, начиная с 0.
  • Дробная часть: позиции считают слева направо, начиная с −1.

Пример:

101,1₂ = 1×2² + 0×2¹ + 1×2⁰ + 1×2⁻¹ = 4 + 0 + 1 + 0,5 = 5,5₁₀.

Если обратный перевод не дал исходное число, ошибка либо в остатках, либо в направлении чтения. Пройди шаги заново.

Разбор задания

Возьмём задание в экзаменационном формате.

Условие: «Переведите число 19₁₀ в двоичную систему счисления. Сколько единиц в полученной записи?»

Решение. Делим на 2 и фиксируем остатки:

Шаг Деление Частное Остаток
1 19 : 2 = 9 ост. 1 9 1
2 9 : 2 = 4 ост. 1 4 1
3 4 : 2 = 2 ост. 0 2 0
4 2 : 2 = 1 ост. 0 1 0
5 1 : 2 = 0 ост. 1 0 1

Остатки снизу вверх: 19₁₀ = 10011₂.

Проверка: 10011₂ = 1×2⁴ + 0×2³ + 0×2² + 1×2¹ + 1×2⁰ = 16 + 0 + 0 + 2 + 1 = 19₁₀.

В записи 10011₂ три единицы. Ответ: 3.

Учти: ответ здесь — количество единиц, а не сама двоичная запись. Читай вопрос до конца.

Ошибки, за которые снимают баллы

Проверь себя по каждому пункту.

  1. Остатки целой части прочитаны сверху вниз. Например, вместо 1101₂ выходит зеркальная запись 1011₂.
  2. Цифры дробной части прочитаны снизу вверх. У двух алгоритмов направления противоположные, их легко перепутать.
  3. Деление остановлено раньше времени. Делить нужно до частного 0, иначе теряется старший разряд.
  4. В обратном переводе степени посчитаны не с той позиции. Для целой части отсчёт начинается с 2⁰ у правой цифры, для дробной — с 2⁻¹ у первой цифры после запятой.
  5. Арифметическая ошибка в промежуточном делении или умножении. Один неверный остаток ломает весь ответ, для этого и нужна проверка обратным переводом.

Шпаргалка

Что переводим Операция Что записываем Как читаем
Целая часть Деление на 2 до частного 0 Остатки (0 или 1) Снизу вверх
Дробная часть Умножение на 2 до дробной части 0, периода или нужного числа разрядов Целые части результатов Сверху вниз
Смешанное число Каждая часть отдельно Результаты через запятую По правилам каждой части
Проверка Цифра × 2 в степени позиции, суммирование Сумму степеней двойки Целая часть с 2⁰ справа, дробная с 2⁻¹

Проверь себя

Реши без подсказок, потом сверься с ответами.

Переведи 25₁₀ в двоичную систему.

11001₂

Переведи 0,375₁₀ в двоичную систему.

0,011₂

Переведи 10,25₁₀ в двоичную систему.

1010,01₂

Сколько единиц в двоичной записи числа 30₁₀?

четыре (30₁₀ = 11110₂)

Все четыре ответа совпали? Тогда тема освоена. Если нет, вернись к таблицам с алгоритмами и в первую очередь повтори направления чтения: остатки снизу вверх для целой части, целые части сверху вниз для дробной.

Другие статьи по теме