Перевод чисел между системами счисления
Из любой системы от 2 до 36 в любую — с решением по шагам, как в тетради.
Решение по шагам
Как считать вручную
Перевод идёт через десятичную систему: сначала число превращают в обычное десятичное, затем делят нужное количество раз на основание новой системы.
- Из своей системы в десятичную. Пронумеруйте цифры справа налево, начиная с нуля. Каждую цифру умножьте на основание в степени её номера и сложьте результаты. Если число уже десятичное, этот шаг пропускают.
- Из десятичной в нужную. Делите число на основание новой системы с остатком, потом делите частное — и так, пока частное не станет 0. Остатки — цифры ответа (остаток больше 9 пишут буквой).
- Запишите остатки снизу вверх — от последнего к первому. Это и есть ответ.
Пример: 156₁₀ → ?₂. Делим на 2: 156 ÷ 2 = 78 (остаток 0); 78 ÷ 2 = 39 (0); 39 ÷ 2 = 19 (1); 19 ÷ 2 = 9 (1); 9 ÷ 2 = 4 (1); 4 ÷ 2 = 2 (0); 2 ÷ 2 = 1 (0); 1 ÷ 2 = 0 (1). Остатки снизу вверх: 10011100. Проверка: 128 + 16 + 8 + 4 = 156.
Частые вопросы
Как перевести число из двоичной системы в десятичную?
Умножьте каждую цифру на 2 в степени её позиции (позиции считают справа налево, начиная с нуля) и сложьте результаты. Например, 10011100₂ = 1·2⁷ + 1·2⁴ + 1·2³ + 1·2² = 128 + 16 + 8 + 4 = 156.
Почему в шестнадцатеричной системе есть буквы?
Для записи 16 разных цифр арабских цифр 0–9 не хватает, поэтому недостающие обозначают буквами: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. В системах с основанием до 36 используются все латинские буквы до Z = 35.
Можно ли переводить дробные и отрицательные числа?
Пока нет: калькулятор работает с целыми неотрицательными числами. Для дробей и отрицательных чисел правила другие, их мы разберём отдельно.
Что означает маленькая цифра справа внизу, например 156₁₀?
Это основание системы счисления, в которой записано число. 156₁₀ — число сто пятьдесят шесть в десятичной системе, 10011100₂ — то же число в двоичной.
Насколько большие числа можно переводить?
До 200 цифр. Расчёт идёт целыми числами произвольной длины, поэтому результат точный, без округления.
Источники
- Документация Python: встроенная функция
int()— перевод строки в число с основанием от 2 до 36. - Документация Python: мини-язык форматирования — вывод целого в двоичной, восьмеричной и шестнадцатеричной записи.