Привет! На носу КЕГЭ по информатике, а ты по-прежнему переводишь числа из одной системы счисления (СС) в столбик или считаешь в уме? Держи лайфхак, который поможет тебе больше не ошибаться в вычислениях.
Перевод из любой системы счисления в десятичную на Python
В первой строке число 123 переводится из 4-ричной СС в 10-ю, во второй - число 1010 из 2-й СС в 10-ю, в третьей - число F5A0 из 16-й СС в 10-ю, а в четвертой строке происходит простое преобразование строки '100' в целое число 100.
Конечно, вы подумали: "И зачем этот пример в 4-й строке?" На самом деле он демонстрирует то, как работает функция INT. Данная функция всегда принимает на вход два аргумента: строку и СС, из которой считывается строка. А перевод всегда осуществляется в десятичную СС. Но, т.к. мы привыкли в повседневной жизни пользоваться именно десятичной СС, то второй аргумент не пишем.
Перевод из десятичной системы счисления в двоичную на Python
В первой строке мы заводим переменную а и с помощью функции BIN преобразуем число 37 в двоичный код с префиксом '0b'. Во второй строке выводим получившееся значение и тип переменной. Тип 'STR' говорит нам о том, что с данным значением можно обращаться как со строкой. В третьей строке мы снова переводим значение переменной a в десятичную СС.
Пример. Подсчитать количество нулей и единиц в двоичной записи числа 37
Этот пример демонстрирует, что важно не забывать о первом символе незначащем нуле при подсчете количества нулей. Также можно избавиться от нуля, обрезав значение переменной a.
Перевод из десятичной системы счисления в шестнадцатеричную/восьмеричную на Python
Перевод в 16-ю и 8-ю систему также прост, как и перевод в двоичную систему. В первой строке число 125 переводится в 16-ю СС, во второй строке - из 16-й в 10-ю СС. В третьей строке число 125 переводится из 10-й в 8-ю СС, в четвертой - обратно.
Перевод из десятичной системы счислению в любую другую на Python
А как же быть, если нам нужно перевести в 5-ричную или 11-ричную систему счисления? Здесь одной строчкой кода не отделаешься.
Данный пример переводит число 134 из десятичной СС в пятиричную.
Более универсальное решение, с применением функции.