💻 Информатика 10 класс

§ 11. Перевод чисел из одной позиционной системы счисления в другую

Привет! Сегодня мы разберёмся с тем, как числа путешествуют между разными системами счисления. Это не просто академическое упражнение — именно так компьютер "понимает" команды, которые вы даёте ему в привычной десятичной форме, и именно поэтому программисты видят мир немного иначе, чем обычные пользователи.

Системы счисления — это разные языки для записи одного и того же количества

11.1. Перевод целого десятичного числа в систему счисления с основанием q

Как перевести привычное нам десятичное число, скажем, 25 или 163, в двоичную, восьмеричную или любую другую систему? Существует универсальный алгоритм, основанный на делении с остатком.

📋 Универсальный алгоритм перевода

  1. Делим исходное число на основание новой системы счисления (q)
  2. Запоминаем остаток — это будет одна из цифр результата
  3. Берём целую часть от деления и повторяем процесс, пока не получим ноль
  4. Собираем число из остатков, записывая их справа налево (начиная с последнего остатка)

Примеры переводов

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

25 ÷ 2 = 12, остаток 1
12 ÷ 2 = 6,  остаток 0
6  ÷ 2 = 3,  остаток 0
3  ÷ 2 = 1,  остаток 1
1  ÷ 2 = 0,  остаток 1

Читаем остатки снизу вверх: 25₁₀ = 11001₂

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

163 ÷ 8 = 20, остаток 3
20  ÷ 8 = 2,  остаток 4
2   ÷ 8 = 0,  остаток 2

Результат: 163₁₀ = 243₈

Пример 3. Перевод 709₁₀ в шестнадцатеричную систему

709 ÷ 16 = 44, остаток 5
44  ÷ 16 = 2,  остаток 12 (C)
2   ÷ 16 = 0,  остаток 2

Результат: 709₁₀ = 2C5₁₆

Перевод через деление — это как разборка числа на запчасти в новом формате

Перевод через деление — это как разборка числа на запчасти в новом формате. Остатки от деления становятся цифрами в новой системе счисления

🧩 Задача со звёздочкой

Пример 4. В каких системах счисления запись числа 22₁₀ оканчивается на 4?

Если число заканчивается на 4, значит остаток от деления 22 на основание q равен 4:

  • 22 mod q = 4
  • Следовательно, (22 - 4) mod q = 0, то есть 18 делится на q нацело
  • Делители 18: {1, 2, 3, 6, 9, 18}
  • Но так как запись оканчивается на 4, основание должно быть больше 4

Подходят: q ∈ {6, 9, 18}

11.2. Перевод целого десятичного числа в двоичную систему (быстрый способ)

Для чисел до 10 000, особенно если они близки к степени двойки, есть более элегантный метод — разложение на сумму степеней двойки.

💡 Идея метода

Представь число как сумму степеней двойки (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024...), начиная с наибольшей.

Пример: Переведём 1096₁₀ в двоичную систему

  1. Ближайшая степень двойки, не превосходящая 1096: 1024 = 2¹⁰
  2. Остаток: 1096 - 1024 = 72
  3. Ближайшая степень к 72: 64 = 2⁶
  4. Остаток: 72 - 64 = 8 = 2³
  5. Остаток: 0

Итого: 1096 = 1024 + 64 + 8 = 2¹⁰ + 2⁶ + 2³

В двоичной записи ставим 1 в разрядах 10, 6 и 3 (считая справа с нуля):

1096₁₀ = 10001001000₂

🎮 Где это применяется?

Этот метод особенно удобен, когда работаешь с памятью компьютера (256 МБ, 512 ГБ, 1024 пикселя) — все эти числа кратны степеням двойки! Именно поэтому в играх разрешение экрана часто бывает 1920×1080, 2560×1440 — эти числа удобно представлять в двоичной системе.

11.3. Перевод из системы с основанием p в систему с основанием q

Что делать, если нужно перевести число из, скажем, пятеричной системы в шестеричную? Есть два пути.

Путь 1

Прямой перевод

Выполнять деление в исходной системе счисления. Сложно для человека, но возможно.

Путь 2

Через десятичную систему (универсальный)

Система p → Десятичная → Система q

Пример 5. Переведём 1234₅ в шестеричную систему

Шаг 1: Переводим в десятичную:

1234₅ = 1·5³ + 2·5² + 3·5¹ + 4·5⁰
      = 125 + 50 + 15 + 4
      = 194₁₀

Шаг 2: Переводим из десятичной в шестеричную:

194 ÷ 6 = 32, остаток 2
32  ÷ 6 = 5,  остаток 2
5   ÷ 6 = 0,  остаток 5

Результат: 194₁₀ = 522₆

Итог: 1234₅ = 522₆

Десятичная система — это универсальный переводчик между любыми системами счисления

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

11.4. Перевод конечной десятичной дроби в систему счисления с основанием q

С дробями работаем похожим образом, но вместо деления используем умножение.

📋 Алгоритм перевода дробей

  1. Умножаем дробную часть на основание q
  2. Записываем целую часть результата — это цифра дроби
  3. Берём дробную часть результата и повторяем, пока она не станет равна нулю (или пока не достигнем нужной точности)
  4. Собираем дробь, записывая цифры слева направо (в порядке получения)

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

0,1875 × 2 = 0,375  → цифра 0
0,375  × 2 = 0,75   → цифра 0
0,75   × 2 = 1,5    → цифра 1
0,5    × 2 = 1,0    → цифра 1

Результат: 0,1875₁₀ = 0,0011₂

⚠️ Важно!

Не все десятичные дроби имеют конечную запись в других системах. Например, 0,1₁₀ в двоичной системе — бесконечная дробь (именно поэтому компьютеры иногда "ошибаются" в вычислениях с дробями!).

11.5. «Быстрый» перевод чисел в компьютерных системах счисления

Вот где начинается магия! Двоичная, восьмеричная и шестнадцатеричная системы связаны особым образом:

8 = 2³

Одна восьмеричная цифра = три двоичных цифры (триада)

16 = 2⁴

Одна шестнадцатеричная цифра = четыре двоичных цифры (тетрада)

Таблица соответствий

Восьмеричная → Двоичная

Восьм. Двоичная триада
0000
1001
2010
3011
4100
5101
6110
7111

Шестнадцатеричная → Двоичная

Шестн. Двоичная тетрада
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
A1010
B1011
C1100
D1101
E1110
F1111
Быстрый перевод между компьютерными системами — это как знать секретные тропы

Быстрый перевод между "компьютерными" системами — это как знать секретные тропы в лесу. Не нужно идти длинным путём через десятичную систему, можно напрямую!

Примеры быстрого перевода

Пример 7. Из двоичной в восьмеричную: 11010100111₂ → ?₈

  1. Разбиваем справа налево на триады: 11.010.100.111
  2. Дополняем левую группу нулём: 011.010.100.111
  3. Заменяем каждую триаду: 3.2.4.7

Результат: 11010100111₂ = 3247₈

Пример 8. Из шестнадцатеричной в двоичную: 16AC₁₆ → ?₂

  1. Заменяем каждую цифру тетрадой: 0001.0110.1010.1100
  2. Убираем незначащие нули слева: 1.0110.1010.1100

Результат: 16AC₁₆ = 1011010101100₂

Пример 9. Из восьмеричной в шестнадцатеричную: 67252₈ → ?₁₆

  1. Переводим в двоичную (триадами): 110.111.010.101.010
  2. Разбиваем на тетрады справа налево: 110.1110.1010.1010
  3. Дополняем слева: 0110.1110.1010.1010
  4. Заменяем тетрадами: 6.E.A.A

Результат: 67252₈ = 6EAA₁₆

Пример 10. Дробные числа: 0,101100011₂ → ?₁₆

  1. Разбиваем слева направо на тетрады: 0,1011.0001.1
  2. Дополняем правую группу справа нулями: 0,1011.0001.1000
  3. Заменяем тетрадами: 0,B.1.8

Результат: 0,101100011₂ = 0,B18₁₆

Задачи на понимание

Пример 11. Сколько значащих нулей в двоичной записи числа 1601₈?

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

1601₈ = 001.110.000.001₂
      = 1110000001₂

Считаем нули, исключая незначащие (слева): 6 значащих нулей

Пример 12. Среди четырёхзначных шестнадцатеричных чисел с ровно 7 единицами найдём:

Четырёхзначное hex-число: от 1000₁₆ до FFFF₁₆ (в двоичном: 16 бит)

  • Наименьшее: ставим 7 единиц в младшие разряды
    0001000000111111₂ = 103F₁₆
  • Наибольшее: ставим 7 единиц в старшие разряды
    1111111000000000₂ = FE00₁₆

✅ Ключевые выводы

Что важно запомнить из этого урока

Универсальный алгоритм перевода из десятичной системы в любую другую основан на последовательном делении с остатком — остатки и образуют цифры результата
Быстрый перевод для двоичных чисел до 10 000 можно делать через разложение на степени двойки (1024, 512, 256...) — это экономит время и помогает понять структуру числа
"Компьютерные" системы (двоичная, восьмеричная, шестнадцатеричная) связаны через степени двойки: 8 = 2³, 16 = 2⁴. Это позволяет переводить числа простой заменой триад и тетрад без арифметики
Перевод через десятичную систему — универсальный, но не всегда самый быстрый путь. Для компьютерных систем есть короткие пути напрямую через двоичную

🤔 Проверь себя

Задачи и вопросы для самопроверки

1. Мини-кейс: Кодирование цвета

Тебе нужно закодировать цвет в формате RGB: красный канал = 163₁₀. Переведи это значение в шестнадцатеричную систему (именно так записывают цвета в веб-дизайне, например #A3B5C7). Какой результат?

Подсказка: используй алгоритм деления на 16

2. Задача на понимание: Степени двойки

Почему в программировании так популярны числа 256, 512, 1024? Как это связано с двоичной системой?

Подсказка: попробуй представить эти числа как степени двойки

3. Практическое применение: Анализ адреса памяти

Представь, что ты анализируешь лог-файлы и видишь адрес памяти: 16AC₁₆. Переведи его в двоичную систему, чтобы понять, какие биты установлены в 1.

Подсказка: используй быстрый метод через тетрады

4. Творческое задание: Объясни младшекласснику

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

Подсказка: подумай про выключатели света (вкл/выкл) и про то, как проще записывать длинные последовательности

5. Исследование: Найди hex-числа в коде

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

Подсказка: цвета, адреса памяти, идентификаторы

6. Переведите целые числа из десятичной системы в двоичную
  • 1) 1025
  • 2) 512
  • 3) 600
7. Переведите число 1147 из десятичной системы в другие системы
  • 1) пятеричную
  • 2) восьмеричную
  • 3) шестнадцатеричную
8. Переведите двоичные числа в восьмеричную систему
  • 1) 1010001001011₂
  • 2) 1010,00100101₂

Подсказка: используйте триады

9. Переведите числа в двоичную систему счисления
  • 1) 266₈
  • 2) 266₁₆
10. Сколько значащих нулей в двоичной записи?
  • 1) восьмеричного числа 2501
  • 2) шестнадцатеричного числа 12A
11. Найдите среди четырёхзначных восьмеричных чисел с ровно 5 единицами в двоичной записи
  • 1) наименьшее число
  • 2) наибольшее число
12. Все 5-буквенные слова из букв О, П, Р, Т

Все 5-буквенные слова, составленные из букв О, П, Р, Т, записаны в алфавитном порядке и пронумерованы:

1. ООООО
2. ООООП
3. ООООР
4. ООООТ
5. ОООПО
...

Какие слова находятся в этом списке на 531-м и 787-м местах?

Подсказка: подумай о связи с системами счисления

13. Укажите все основания систем счисления

Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись десятичного числа 82 оканчивается на 5.

Теперь вы владеете инструментами для перевода чисел между любыми системами счисления!

Теперь вы владеете инструментами для перевода чисел между любыми системами счисления!

🚀 Отличная работа! Теперь вы знаете, как числа путешествуют между разными системами счисления, и можете применять как универсальные алгоритмы, так и быстрые методы для компьютерных систем. В следующих параграфах мы будем изучать арифметические операции в различных системах счисления!

Информатика — твой билет в цифровое будущее