Как перевести число из десятичной системы в двоичную и обратно
Чтобы перевести десятичное число в двоичное, нужно последовательно делить его на 2 и записывать остатки в обратном порядке. Для обратного перевода (из двоичной в десятичную) необходимо умножить каждый бит на соответствующую степень двойки и сложить результаты. Эти алгоритмы являются фундаментальными для понимания работы компьютерной логики.
Ниже приведены подробные пошаговые инструкции с примерами для обоих направлений перевода.
Оглавление
Перевод из десятичной в двоичную
Алгоритм основан на методе последовательного деления на основание системы счисления (в данном случае — на 2).
Пошаговая инструкция
- Разделите исходное десятичное число на 2.
- Запишите остаток от деления (он всегда будет равен 0 или 1).
- Возьмите целую часть частного и снова разделите её на 2.
- Повторяйте шаги 1–3, пока частное не станет равным 0.
- Запишите все полученные остатки в порядке, обратном их получению (снизу вверх). Это и есть двоичное представление числа.
Пример: перевод числа 156
| Деление | Частное | Остаток |
|---|---|---|
| 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. Таким образом, $156_{10} = 10011100_2$.
Пример: перевод числа 13
- $13 \div 2 = 6$ (остаток 1)
- $6 \div 2 = 3$ (остаток 0)
- $3 \div 2 = 1$ (остаток 1)
- $1 \div 2 = 0$ (остаток 1)
Результат (снизу вверх): 1101. $13_{10} = 1101_2$.
Лайфхак для программистов: В языке Python можно быстро проверить результат, используя встроенные функции:
bin(156)вернет строку'0b10011100'.- Префикс
0bуказывает на двоичный формат, сами цифры —10011100.
Перевод из двоичной в десятичную
Двоичная система является позиционной. Вес каждого бита зависит от его позиции, считая справа налево, начиная с нуля. Позиция $i$ имеет вес $2^i$.
Пошаговая инструкция
- Пронумеруйте позиции битов справа налево, начиная с 0.
- Если бит равен 1, вычислите значение $2^{\text{номер позиции}}$.
- Если бит равен 0, его вклад в сумму равен 0.
- Сложите все полученные значения.
Пример: перевод числа $10011100_2$
Запишем степени двойки для каждой позиции (справа налево):
| Бит | Позиция ($i$) | Вычисление ($2^i$) | Значение | | :-: | :-----------: | :----------------: | :------: | | 0 | 0 | $2^0$ | 0 | | 0 | 1 | $2^1$ | 0 | | 1 | 2 | $2^2$ | 4 | | 1 | 3 | $2^3$ | 8 | | 1 | 4 | $2^4$ | 16 | | 0 | 5 | $2^5$ | 0 | | 0 | 6 | $2^6$ | 0 | | 1 | 7 | $2^7$ | 128 |
Сумма: $128 + 16 + 8 + 4 = 156$. Результат: $10011100_2 = 156_{10}$.
Пример: перевод числа $1101_2$
- $1 \cdot 2^3 = 8$
- $1 \cdot 2^2 = 4$
- $0 \cdot 2^1 = 0$
- $1 \cdot 2^0 = 1$
Сумма: $8 + 4 + 0 + 1 = 13$.
Быстрые способы проверки
Для ускорения процесса и самопроверки полезно знать степени двойки наизусть для первых 8–10 позиций:
| Степень | Значение |
|---|---|
| $2^0$ | 1 |
| $2^1$ | 2 |
| $2^2$ | 4 |
| $2^3$ | 8 |
| $2^4$ | 16 |
| $2^5$ | 32 |
| $2^6$ | 64 |
| $2^7$ | 128 |
| $2^8$ | 256 |
Метод разложения по степеням: При переводе из десятичной в двоичную можно искать наибольшую степень двойки, которая меньше или равна числу, вычитать её и повторять процесс для остатка.
Пример для 156:
- Ближайшая степень двойки $\le 156$ — это $128$ ($2^7$). Ставим 1 на 7-ю позицию. Остаток: $156 - 128 = 28$.
- $64 > 28$, ставим 0.
- $32 > 28$, ставим 0.
- $16 \le 28$, ставим 1. Остаток: $28 - 16 = 12$.
- $8 \le 12$, ставим 1. Остаток: $12 - 8 = 4$.
- $4 \le 4$, ставим 1. Остаток: $0$.
- Оставшиеся позиции ($2^1, 2^0$) заполняем нулями.
Итог: $10011100$. Этот метод позволяет избежать длинного столбца делений.
Частые ошибки
Обратите внимание на типичные ловушки:
- Неверный порядок остатков. Самая распространенная ошибка при делении — запись остатков в прямом порядке (сверху вниз). Всегда читайте их снизу вверх (от последнего деления к первому).
- Путаница с индексами. При обратном переводе нумерация позиций начинается с 0, а не с 1. Самый правый бит имеет индекс 0.
- Пропуск нулей. Если при разложении по степеням какая-то степень «пропускается» (например, нет 64 и 32), обязательно ставьте на эти места нули в двоичной записи.
FAQ
Вопрос: Как перевести отрицательное число в двоичную систему? Ответ: В компьютерах отрицательные числа обычно хранятся в дополнительном коде (Two's Complement). Чтобы получить его:
- Запишите положительное число в двоичном виде.
- Инвертируйте все биты (0 замените на 1, 1 на 0).
- Прибавьте 1 к полученному результату.
Вопрос: Что делать с дробными числами? Ответ: Целая часть переводится делением на 2 (как описано выше). Дробная часть переводится умножением на 2:
- Умножьте дробную часть на 2.
- Целая часть результата (0 или 1) становится следующим битом.
- Повторяйте с новой дробной частью, пока она не станет 0 или не будет достигнута нужная точность.
Вопрос: Почему в двоичной системе используются только 0 и 1? Ответ: Это связано с физической реализацией электроники. Транзисторы имеют два устойчивых состояния: «ток есть» (логическая единица) и «тока нет» (логический ноль). Это обеспечивает надежность и помехоустойчивость вычислений.