ЕНТ
June 8, 2024

Подготовка к ЕНТ || Системы счисления

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

Система счисления — это метод представления чисел с помощью символов (цифр). Основные системы счисления включают:

  1. Двоичная (бинарная) система: основание 2, символы 0 и 1.
  2. Восьмеричная система: основание 8, символы от 0 до 7.
  3. Десятичная система: основание 10, символы от 0 до 9.
  4. Шестнадцатеричная система: основание 16, символы от 0 до 9 и от A до F (где A=10, B=11, C=12, D=13, E=14, F=15).

Перевод из десятичной системы в любую другую

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

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

Теперь собираем все числа в обратном порядке.

И получаем такой итог:

156 (10) ​= 10011100 (2) (в скобочках указано в какой системе счисления записано число)

Теперь переведем число 255(10) в восьмеричную систему.

Также записываем остатки в обратном порядке и получаем, что 255(10) = 377(8)

Ну и напоследок переведем число 2555(10) в шестнадцатеричную систему счисления.

Ответ: 2555(10) = 9FB(16)

Перевод из любой системы счисления в десятичную

​Тут используется такой алгоритм. Давайте для примера возьмем число 1011(2) и переведем его в десятичную систему.

Сначала запишем его.

Теперь нам нужно сверху подписать в обратном порядке каждую цифру начиная с нуля.

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

Для удобства я подчеркнул для вас какие выражения от каких получаются. Ну и осталось только посчитать.

Вуа-ля, теперь мы перевели число 1011(2) из двоичной системы в десятичную.

1011(2) = 11(10)

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

Перевести число 67(8) из восьмеричной системы счисления в десятичную.

Запишем это число и сразу запишем сверху циферки.

Ну и все, теперь делаем согласно алгоритму. Умножаем 6 на 8 в первой степени + 7 умножить на 8 в нулевой степени и считаем.

Вот собсна и все, алгоритм простой.

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

Вообще существуют способы перевода без промежуточного перевода в десятичную. Ну вот например из двоичной системы в шестнадцатеричную, но там алгоритмы уже не настолько просты. Мой пост написан для ЕНТ, где задания с переводами в системы счисления достаточно примитивны и вам достаточно понимать как работает перевод в десятичную и обратно.

Для особо интересующихся приведу пример.

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

Пример: Перевод числа 11010111 из двоичной системы в шестнадцатеричную.

  1. Группируем число по 4 бита справа налево:
    • 1101 0111
  2. Переводим каждую группу в шестнадцатеричное представление:
    • 1101 (в двоичной) = D (в шестнадцатеричной)
    • 0111 (в двоичной) = 7 (в шестнадцатеричной)​

Результат: 11010111(2) = D7(16)

На этом пожалуй все, надеюсь вы поняли тему и оцените этот пост реакцией :))

контакт

Телега : https://t.me/a_sot_a