Есть классический анекдот. Это выглядит так:
Есть 10 типов людей, которые понимают двоичный код...
Я имею в виду, это просто смешно, но мне все равно это нравится. Зачем нужно знать о двоичных числах? Дядя Оуэн (из «Звездных войн») ищет дроида, который понимает двоичный язык испарителей влаги (который, по словам C3PO, он понимает). Однако в реальном мире двоичная система — это система счисления, которую любят использовать компьютеры.
В этом посте я собираюсь рассмотреть следующие три системы счисления:
- Десятичная дробь. Вы уже знаете эту систему. Это набор из 10 чисел от 0 до 9. О, смотри, на твоих руках тоже 10 пальцев. Ух ты.
- Бинарный. В этой системе счисления всего два числа. Это 1 и 0.
- Шестнадцатеричный. Здесь 16 номеров. Мы используем 0–9 плюс A, B, C, D, E, F (поскольку у нас закончились десятичные числа).
Я собираюсь показать, как преобразовать двоичное число в десятичное (и обратно), а затем то же самое для шестнадцатеричного. Хотя вы можете использовать встроенные функции в Python, мы собираемся написать некоторый код в основном с нуля (потому что это будет весело).
Базовые 10 чисел
Если вы хотите понять двоичную систему, вы должны сначала понять десятичную систему. Предположим, у вас есть число вроде 324. Что это на самом деле означает? В системе с основанием 10 каждое число имеет разрядное значение. Все они представляют степени числа 10. Вот значения разрядов (да, я знаю, что вы все это знаете).
Это означает, что 324 будет:
Теперь мы можем использовать эту же идею для двоичных чисел.
Числа с основанием 2
В двоичной системе счисления есть только два числа — 0 и 1. Это означает, что каждое «местное значение» представляет собой степень числа 2 (вместо степени числа 10).
Давайте продолжим и возьмем двоичное число и преобразуем его в десятичное число.
Двоичный в десятичный
Как насчет 11010? Помните, что каждое из этих чисел представляет, сколько у нас есть этой разрядной стоимости. Начиная с крайнего левого числа, у нас есть 1 на месте 2⁴. Это означает, что у нас есть одна 16. Затем у нас есть одна восьмерка, ноль четверок, одна двойка и ноль единиц.