Подготовка к ЕНТ || Системы счисления
Перевод чисел из одной системы счисления в другую — это фундаментальный навык, который необходим каждому программисту. Давайте рассмотрим этот процесс подробно, с примерами.
Система счисления — это метод представления чисел с помощью символов (цифр). Основные системы счисления включают:
- Двоичная (бинарная) система: основание 2, символы 0 и 1.
- Восьмеричная система: основание 8, символы от 0 до 7.
- Десятичная система: основание 10, символы от 0 до 9.
- Шестнадцатеричная система: основание 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) в шестнадцатеричную систему счисления.
Перевод из любой системы счисления в десятичную
Тут используется такой алгоритм. Давайте для примера возьмем число 1011(2) и переведем его в десятичную систему.
Теперь нам нужно сверху подписать в обратном порядке каждую цифру начиная с нуля.
И далее мы берем каждое число и умножаем его на двойку в той степени, которая у нас написана сверху, а потом все это складываем.
Для удобства я подчеркнул для вас какие выражения от каких получаются. Ну и осталось только посчитать.
Вуа-ля, теперь мы перевели число 1011(2) из двоичной системы в десятичную.
Такой же алгоритм будет работать и в других случаях, когда мы хотим перевести число из какой-либо системы счисления в десятичную, только умножать мы будем не на двойку в какой-то степени, а на само основание этой системы счисления. Ну вот давайте решим такой пример.
Перевести число 67(8) из восьмеричной системы счисления в десятичную.
Запишем это число и сразу запишем сверху циферки.
Ну и все, теперь делаем согласно алгоритму. Умножаем 6 на 8 в первой степени + 7 умножить на 8 в нулевой степени и считаем.
Вот собсна и все, алгоритм простой.
Главное не забудьте, когда из десятичной переводим в другую систему - то делим. Если из другой системы в десятичную, то умножаем и складываем.
Вообще существуют способы перевода без промежуточного перевода в десятичную. Ну вот например из двоичной системы в шестнадцатеричную, но там алгоритмы уже не настолько просты. Мой пост написан для ЕНТ, где задания с переводами в системы счисления достаточно примитивны и вам достаточно понимать как работает перевод в десятичную и обратно.
Для особо интересующихся приведу пример.
Иногда можно переводить числа между системами счисления, используя промежуточное представление. Например, для перевода из двоичной системы в шестнадцатеричную удобно использовать группировку по 4 бита.
Пример: Перевод числа 11010111 из двоичной системы в шестнадцатеричную.
Результат: 11010111(2) = D7(16)
На этом пожалуй все, надеюсь вы поняли тему и оцените этот пост реакцией :))
Телега : https://t.me/a_sot_a