Системы счисления: двоичная запись и переводы чисел
Системы счисления показывают, как записывать числа с помощью разных наборов цифр. В школьной информатике чаще всего встречаются десятичная, двоичная, восьмеричная и…
Системы счисления показывают, как записывать числа с помощью разных наборов цифр. В школьной информатике чаще всего встречаются десятичная, двоичная, восьмеричная и шестнадцатеричная системы. Эта тема важна для ОГЭ, ЕГЭ по информатике и первых задач по устройству компьютера.
Десятичная система использует цифры от 0 до 9 и основание 10. Двоичная система использует только 0 и 1, потому что компьютер хранит данные через состояния, которые удобно считать выключенным и включенным сигналом.
Как перевести число в двоичную систему
Чтобы перевести десятичное число в двоичную запись, делите число на 2 и записывайте остатки. Остатки читаются снизу вверх.
Например, число 13:
- 13 делим на 2, остаток 1.
- 6 делим на 2, остаток 0.
- 3 делим на 2, остаток 1.
- 1 делим на 2, остаток 1.
Получается 1101.
n = int(input())
bits = ''
while n > 0:
bits = str(n % 2) + bits
n //= 2
print(bits or '0')Как перевести обратно
Для перевода из двоичной системы в десятичную умножайте каждую цифру на степень двойки. В числе 1101 справа налево стоят разряды 1, 2, 4, 8. Поэтому получается 1 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 13.
bits = input()
answer = 0
for bit in bits:
answer = answer * 2 + int(bit)
print(answer)Что тренировать школьнику
Начните с коротких чисел и проверяйте себя вручную. Затем решайте задачи на количество единиц в двоичной записи, сравнение чисел в разных системах, поиск минимального основания и перевод между восьмеричной, десятичной и шестнадцатеричной системами.
Системы счисления не стоит учить как набор отдельных правил. Важно понять общую идею разрядов: значение цифры зависит от ее позиции и основания системы. Тогда задачи по информатике становятся предсказуемыми, а не похожими на угадывание формул.
Источники
- Босова Л.Л. Информатика. Базовый курс: учебник для 7-9 классов. - М.: БИНОМ. Лаборатория знаний.
- Поляков К.Ю., Еремин Е.А. Информатика. 10-11 классы. Углубленный уровень.
- Python Documentation: The Python Tutorial.