Перевод чисел в другую систему счисления
Перевод чисел между двоичной, восьмеричной, десятичной, шестнадцатеричной и произвольной системой счисления от 2 до 36 с пошаговым решением.
Переводим 180 из десятичной в 2-ричную, деля с остатком:
- 180 ÷ 2 = 90, остаток 0 → цифра «0»
- 90 ÷ 2 = 45, остаток 0 → цифра «0»
- 45 ÷ 2 = 22, остаток 1 → цифра «1»
- 22 ÷ 2 = 11, остаток 0 → цифра «0»
- 11 ÷ 2 = 5, остаток 1 → цифра «1»
- 5 ÷ 2 = 2, остаток 1 → цифра «1»
- 2 ÷ 2 = 1, остаток 0 → цифра «0»
- 1 ÷ 2 = 0, остаток 1 → цифра «1»
Что считает калькулятор
Система счисления — это правило, по которому позиция цифры в записи числа определяет её вес. В привычной десятичной системе у числа 180 цифра 1 стоит на месте сотен, поэтому означает не 1, а 100. У любой системы с основанием N вес каждой позиции — это степень N, и после самой большой цифры основания счёт переходит на следующий разряд: в двоичной после 1 сразу идёт 10, а не 2, потому что цифры 2 в двоичной системе не существует.
Перевод между двумя произвольными системами удобнее делать в два шага через десятичную систему как посредника: сначала разложить исходное число по степеням его основания и получить десятичное значение, затем это значение делить нацело на новое основание, пока не останется ноль, — остатки от деления и есть цифры результата, только читать их нужно в обратном порядке, от последнего к первому.
Формула
В десятичную: Σ (цифра × основание^позиция) Из десятичной: делить нацело на основание, собирать остатки, читать снизу вверх
- основание
- сколько различных цифр в системе — 2 для двоичной, 16 для шестнадцатеричной
- позиция
- номер разряда справа налево, начиная с нуля
- В системах с основанием больше 10 не хватает арабских цифр, поэтому используют буквы: A = 10, B = 11 и так далее до Z = 35 для основания 36.
- Перевод из одной недесятичной системы в другую всегда проходит через десятичную, даже если кажется, что можно быстрее — прямого правила для произвольной пары оснований не существует.
- Есть исключение: между двоичной, восьмеричной (2³) и шестнадцатеричной (2⁴) можно переводить группами битов без десятичного шага, потому что их основания — степени двойки.
Примеры
Перевести 180 в двоичную систему
- 180 ÷ 2 = 90, остаток 0
- 90 ÷ 2 = 45, остаток 0
- 45 ÷ 2 = 22, остаток 1
- 22 ÷ 2 = 11, остаток 0
- 11 ÷ 2 = 5, остаток 1
- 5 ÷ 2 = 2, остаток 1
- 2 ÷ 2 = 1, остаток 0
- 1 ÷ 2 = 0, остаток 1
- Читаем остатки снизу вверх: 10110100
180 в десятичной = 10110100 в двоичной
Перевести FF из шестнадцатеричной в десятичную
- F = 15, вторая F тоже 15
- 15 × 16¹ + 15 × 16⁰ = 240 + 15 = 255
FF (шестнадцатеричное) = 255 (десятичное)
Частые вопросы
›Почему в программировании используют шестнадцатеричную систему?
Потому что основание 16 — это 2⁴, и один шестнадцатеричный разряд ровно соответствует четырём двоичным битам. Число, которое в двоичной записи занимает восемь цифр, в шестнадцатеричной укладывается в две — короче писать и легче не ошибиться, а перевод между ними не требует умножений, только группировку по четыре бита.
›Как быстро перевести двоичное число в восьмеричное?
Разбейте двоичную запись на группы по три бита справа налево и переведите каждую группу отдельно как обычное трёхбитное число от 0 до 7: 10110100 группируется как 10 110 100, то есть 2 6 4, и результат — 264 в восьмеричной. Работает потому, что 8 = 2³.
›Что означают буквы в системах счисления больше десятой?
Когда цифр 0–9 не хватает, в ход идут латинские буквы по алфавиту: A = 10, B = 11, C = 12 и так далее. Шестнадцатеричная система использует буквы от A до F, а система с основанием 36 — весь латинский алфавит, вплоть до Z = 35.
›Можно ли перевести дробное число в другую систему счисления?
Да, но по другому алгоритму: целую часть переводят делением, а дробную — умножением на основание с отделением целой части на каждом шаге. Этот калькулятор работает с целыми числами; для дробных потребуется отдельный расчёт.
Методика проверена