Перевод между разными системами счисления на Python

5 мин.

Обложка статьи "Перевод между разными системами счисления на Python"

В одной из наших статей мы уже подробно рассказали о системах счисления: что это такое, какие они бывают, и зачем тебе эта информация на ЕГЭ.

Сегодня разберемся, как переводить числа в разные СС не вручную, а с помощью программы.

Функция (int)

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

Вот как это будет выглядеть в Python:

>>> int (3.65)
3
>>> int (-9.123)
— 9
>>> int («3456»)
3456

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

Просто введи int(str, base)
str — передает число в виде строки, base — основание СС.

ВАЖНО:

  • аргумент base может быть целым числом в диапазоне от 2 до 36;
  • в обратную сторону перевод не работает.

Смотри, как записывается программа:

>>> int (‘110110’, 2)
54
>>> int (‘652’, 7)
331
>>> int(‘fb8’, 16)
4024

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

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

Функции bin(), oct(), hex()

Автоматически переводят числа из 10СС в 2СС, 8СС и 16СС:

  • bin(num) — преобразует целое число в строку двоичного формата. Форматированная строка имеет префикс «0b».

Пример перевода:

>>> bin (125)

‘0b1111101’

>>> bin ( 125) [2:]

‘1111101’

  • oct(num) — преобразует целое число в строку восьмеричного формата с префиксом «0o».

Запись в питоне:

>>> oct (19)

‘0о23’

>>> oct(19) [2:]

’23’

  • hex(num) — преобразует целое число в строку шестнадцатеричного формата с префиксом «0x».

Пример записи:

>>> hex(243)

‘0xf3’

>>> hex(243) [2:]

‘f3’

Перевод числа из 10СС в NCC

Напишем программу для перевода чисел из десятичной системы счисления в СС с любым основанием.

Задаем исходное число в 10СС

decimal_number = 255

Указываем СС, в которую исходное число нам нужно перевести (от двоичной системы до шестнадцатеричной)

base = 2

Все возможные варианты цифр

digits = “0123456789ABCDEF”

result = “”

while decimal_number > 0:

Находим остаток от деления исходного числа на основание системы счисления.

Этот остаток и будет следующей цифрой в новом числе (в выбранной системе счисления).

digit = decimal_number % base

Добавляем это число в начало искомого числа.

result = digits[digit] + result

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

decimal_number //= base

print(result)

Теперь ты знаешь, как пользоваться возможностями Python для перевода чисел в разные СС. А если хочешь получить больше полезных материалов для самостоятельной подготовки к ЕГЭ по информатике, читай другие наши статьи:

Поделиться

    Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.