Что такое система счисления (radix) и почему это важно в программировании?
Система счисления (или radix) определяет, сколько уникальных цифр используется в позиционной системе. База 10 (десятичная) использует цифры 0-9; база 2 (двоичная) — 0-1; база 16 (шестнадцатеричная) — 0-9 и A-F. В программировании двоичная представляет сырые машинные данные, восьмеричная используется в Unix-разрешениях файлов (chmod 755), а шестнадцатеричная — стандарт для адресов памяти, цветовых кодов (#FF5733) и byte-level инспекции данных. Понимание систем счисления необходимо для отладки, сетей и низкоуровневого программирования.
Как конвертировать между системами счисления вручную?
Чтобы конвертировать из любой базы в десятичную: умножьте каждую цифру на базу в степени её позиции (справа налево, начиная с 0), затем сложите. Например, двоичное 1011 = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8+0+2+1 = 11. Чтобы конвертировать из десятичной в другую базу: повторно делите на целевую базу и собирайте остатки в обратном порядке. Например, 255 в hex: 255÷16 = 15 ост. 15, давая FF.
Безопасны ли мои данные при использовании этого конвертера?
Да, полностью. Все конвертации идут локально в браузере на JavaScript. Данные не отправляются на сервер — нет сетевых запросов, cookie, аналитики ввода и нулевое хранение. Числа не покидают устройство. Инструмент идеален для конвертации чувствительных данных вроде адресов памяти или проприетарных байтовых последовательностей.
Что такое система счисления 36 и где применяется?
База 36 — самая большая буквенно-цифровая система, использующая цифры 0-9 и буквы A-Z (где A=10 до Z=35). Широко применяется в URL-шортнерах (например, ID видео YouTube), компактных уникальных идентификаторах, первичных ключах БД и кодировании больших чисел в короткие читаемые строки. Например, десятичное 1 000 000 становится LFLS в base 36 — намного короче и удобнее. Особенно популярна в веб-разработке для slug-friendly идентификаторов, компактных и регистронезависимых.
В чём разница между знаковым и беззнаковым представлением?
Беззнаковые числа представляют только неотрицательные значения (0 и положительные). Знаковые могут представлять и положительные, и отрицательные, обычно через дополнительный код (two's complement) в компьютерах. В дополнительном коде старший бит указывает знак: 0 — положительное, 1 — отрицательное. Например, в 8-битном беззнаковом диапазон 0-255; в 8-битном знаковом — от -128 до 127.
Почему программисты используют hex вместо двоичного?
Hex — компактное представление двоичных данных: каждая hex-цифра отображается ровно в 4 двоичных бита (ниббл). Это делает hex намного проще для чтения и записи, чем длинные двоичные строки. Например, двоичное 11111111 00001010 — просто FF0A в hex. Hex — стандарт в адресах памяти, цветовых кодах (CSS #FF5733), MAC-адресах (00:1A:2B:3C:4D:5E) и форматировании UUID.
Может ли инструмент работать с очень большими числами?
Да. Инструмент использует BigInt JavaScript для произвольной точности целочисленной арифметики — нет верхнего предела на число цифр. Можно конвертировать числа с сотнями или даже тысячами цифр между любыми базами от 2 до 36 без потери точности. Нативный тип Number JavaScript ограничен 53-битными целыми (до 9 007 199 254 740 991), но BigInt снимает это ограничение.
Как конвертировать двоичное в hex вручную?
Простейший метод — группировка по 4 бита. Начиная с правого, разбейте двоичное число на группы по 4 цифры (нибблы). Дополните левую группу ведущими нулями. Затем используйте таблицу: 0000=0, 0001=1, 0010=2, 0011=3, 0100=4, 0101=5, 0110=6, 0111=7, 1000=8, 1001=9, 1010=A, 1011=B, 1100=C, 1101=D, 1110=E, 1111=F. Например, 10101111 разбивается на 1010 и 1111 → A и F → AF. Это работает, потому что 16 — степень 2 (16 = 2⁴).
Как конвертировать отрицательное число между системами?
Отрицательные числа в компьютерах обычно представлены через дополнительный код. Старший бит (MSB) — знаковый: 0 — положительное, 1 — отрицательное. Чтобы получить дополнительный код: инвертируйте все биты и добавьте 1. Например, для -5 в 8-битном двоичном: 5 (00000101) → инверсия 11111010 → +1 = 11111011. То есть -5 в 8-битном дополнительном коде — 11111011 в двоичном или FB в hex. Диапазон n-битного дополнительного кода: от -2^(n-1) до 2^(n-1)-1. Этот инструмент конвертирует величину; для знаковых представлений применяйте дополнительный код вручную.
В чём разница между шестнадцатеричной и десятичной?
Десятичная (база 10) использует десять цифр (0-9) — повседневная человеческая система. Шестнадцатеричная (база 16) использует шестнадцать символов (0-9 и A-F) — предпочитаемый формат в вычислениях. Ключевая разница — позиционное значение: в десятичной каждая позиция — степень 10 (1, 10, 100, 1000…), в hex — степень 16 (1, 16, 256, 4096…). Например, десятичное 255 — это FF в hex, потому что 15×16 + 15×1 = 255.
Почему компьютеры используют двоичную, а не десятичную?
Компьютеры используют двоичную (базу 2), потому что их фундаментальные строительные блоки — транзисторы — работают как электронные переключатели с двумя состояниями: вкл (1) и выкл (0). Это идеально соответствует двоичным цифрам. Представление десятичных потребовало бы схем, надёжно различающих 10 разных уровней напряжения — гораздо сложнее и ошибкоопаснее. Двоичная также естественно соответствует булевой логике (true/false).
Почему Unix-разрешения файлов представлены в восьмеричной?
Unix-разрешения используют три категории — владелец, группа, остальные — каждая с тремя битами разрешений: read (r=4), write (w=2), execute (x=1). Поскольку 3 бита представляют значения 0-7, каждая категория идеально отображается в одну восьмеричную цифру. Например, разрешение 755: владелец rwx (7 = 4+2+1), группа r-x (5 = 4+0+1), остальные r-x (5).
Как hex-цвета используются в веб-разработке?
В веб-разработке цвета часто задаются в формате #RRGGBB hex, где каждая пара hex-цифр представляет один канал: красный, зелёный и синий. Каждый канал — от 00 (0, нет интенсивности) до FF (255, полная интенсивность). Например, #FF5733 = красный=FF (255), зелёный=57 (87), синий=33 (51) — яркий оранжево-красный. Есть короткая запись — #F00 разворачивается в #FF0000 (чистый красный). Современный CSS поддерживает #RRGGBBAA для alpha-прозрачности.
Где конвертация систем счисления применяется в сетях?
Конвертация систем критична в сетях для работы с IP-адресами, масками подсети и MAC-адресами. IPv4 вроде 192.168.1.1 пишутся в десятичной, но расчёты подсетей требуют двоичной. Например, маска /24 — это 11111111.11111111.11111111.00000000 в двоичной, что 255.255.255.0 в десятичной. Сетевые инженеры применяют побитовое AND IP и маски в двоичной, чтобы определить адрес сети. MAC-адреса используют hex (00:1A:2B:3C:4D:5E).
Как этот инструмент сравнивается со встроенными функциями языков программирования?
Языки предлагают встроенные функции: JavaScript — parseInt() и toString(), Python — bin(), oct(), hex(), int(). Однако инструмент даёт несколько преимуществ: конвертирует во все распространённые системы одновременно с обновлением в реальном времени, не требует настройки кода, поддерживает любые базы 2-36 в одном интерфейсе и использует BigInt для произвольной точности сверх стандартных типов. Идеален для быстрых проверок, верификации вывода кода и работы с базами без нативной поддержки. Для production-кода используйте нативные функции; для исследования и отладки этот инструмент быстрее.