Адрес памяти выглядит как 0x7ffee23a1c40. Права доступа к файлу — 0755. Битовая маска в документации драйвера записана в двоичном виде. Значение цветового канала нужно перевести из десятичного в двузначный hex. По отдельности ни одна из этих конвертаций не сложна, но делать их постоянно в уме — особенно перевод из двоичной в шестнадцатеричную, требующий группировки битов в полубайты, — медленнее и подвержено большему числу ошибок, чем должно быть для чего-то такого механического.
Низкоуровневое программирование, разработка встраиваемых систем, сетевые технологии и даже повседневная веб-разработка (снова hex-цвета) требуют регулярного перехода между системами счисления настолько часто, что мысленной таблицы шестнадцатеричных цифр хватает лишь до тех пор, пока числа не становятся больше байта-двух.
Где обычно спотыкаются
Восьмеричная система — коварная. Право доступа к файлу вроде 644 выглядит как десятичное число, но на самом деле это база 8, и восприятие его как десятичного при рассуждении приводит к путанице насчёт реального битового паттерна. Двоичная система становится неудобной уже после 16 бит — 32-битное значение в двоичном виде занимает тридцать два символа, его трудно читать и легко просчитаться, пытаясь выделить конкретные биты для проверки флага.
Конвертируйте между всеми четырьмя системами счисления сразу
Bellows включает конвертер систем счисления, который показывает значение в десятичной, шестнадцатеричной, восьмеричной и двоичной системах одновременно. Введите число в любой системе счисления — все четыре представления обновятся вместе, без отдельной конвертации для каждой пары.
Низкоуровневая и встраиваемая разработка
Чтение значений регистров, битовых масок и адресов памяти во встраиваемой прошивке или системном программировании означает свободный переход между hex и двоичной системой. Видеть оба сразу, вместе с десятичным, убирает слой ручного перевода из и без того насыщенной деталями задачи.
Права доступа к файлам и сети
Права доступа к файлам в Unix, маски подсетей и различные двоичные флаги в сетевых протоколах обычно выражаются в восьмеричной или двоичной системе, но осмысляются в десятичной. Быстрая конвертация подтверждает, что именно представляет строка прав или байт флагов, прежде чем вы её измените.