Фундамент для ОГЭ №10 и ЕГЭ №14 — с абакусом, делилкой и столбиком.
Системы счисления окружают нас: двоичная — внутри процессора, шестнадцатеричная — в адресах памяти и цветах веб-дизайнера, восьмеричная — в правах доступа UNIX. В этой главе разберёмся, как они устроены и как переводить между ними.
5 страниц с теорией, интерактивами и банком заданий.
Рекомендуемый порядок прохождения
Системы счисления — это мост между математикой и компьютерной инженерией. Эта глава опирается на несколько предыдущих и подготавливает к следующим.
В главе 10 мы ввели понятие алфавита и его мощности A. Оказалось, что мощность алфавита — это ни что иное как основание системы счисления. Формула N = Aⁱ (количество слов длины i) превращается в формулу веса разряда qⁱ. Без понимания мощности алфавита невозможно освоить позиционную запись.
В главе 13 мы изучали кодировки: каждая буква — это число (ASCII 65='A', Unicode 1055='П'). Теперь мы понимаем, почему одни и те же байты читаются по-разному в разных кодировках: это разные правила интерпретации одних и тех же двоичных чисел. Кросс-кодировочный конвертер из 13.2 напрямую использует перевод между системами счисления.
В главе 12 мы считали объём в битах: 1 байт = 8 бит. Теперь понимаем, что 8 — это основание восьмеричной СС, и 1 байт = 2³ = 8 значений. Это связывает двоичную и восьмеричную СС напрямую: каждая восьмеричная цифра — ровно 3 бита.
В главе 6 (переменные) мы узнали, что компьютер хранит числа в двоичном виде. Теперь мы понимаем механизм: переменная int — это 32 двоичных разряда (бит), а тип byte — это 8 разрядов. Шестнадцатеричная запись 0xFF — это просто удобный способ записать 11111111₂ = 255₁₀. В главе 25 (Числа в памяти) мы увидим, как вещественные числа кодируются по стандарту IEEE 754: знак + экспонента + мантисса — всё в двоичной СС.