> base36 | 0-9,A-Z | компактно <
// Base36 — компактное алфанумерическое кодирование с использованием цифр 0-9 и букв A-Z
Только алфанумерические символы
Использует только цифры 0-9 и буквы A-Z — совместимо с большинством баз данных и текстовых форматов.
Компактное представление
Более компактно, чем десятичная запись больших чисел, при этом строки остаются читаемыми и удобными для обмена.
Подходит для URL
Без спецсимволов: отлично подходит для коротких ссылок, публичных идентификаторов, продуктовых кодов и лицензионных ключей.
>> техническая информация
Как работает Base36:
Base36 — это позиционная система счисления по основанию 36, использующая 36 символов (0-9 и A-Z). Каждая позиция соответствует степени 36, что позволяет представлять большие числа в виде коротких алфанумерических строк.
Примеры Base36:
Числа → Base36: 123 → 3F 1000 → RS 999999 → LFLR Текст → Base36 (через байты): Hi → 1Q5 ABC → 3O0AF Типичные применения: - ID видео/ресурсов - Короткие URL - Сессионные токены - Продуктовые коды - Лицензионные ключи
Зачем использовать Base36:
- ▸Генерация коротких, удобочитаемых идентификаторов из больших чисел
- ▸Создание безопасных для URL токенов без спецсимволов
- ▸Сжатие числовых значений в компактные алфанумерические строки
- ▸Как правило, нечувствителен к регистру — устойчив к изменениям верхнего/нижнего регистра
- ▸Более дружественная человеку альтернатива чисто шестнадцатеричным представлениям
>> часто задаваемые вопросы
Что такое Base36?
Base36 — это позиционная система счисления, использующая 36 различных символов: цифры 0-9 и буквы A-Z. Она предоставляет компактный способ представления чисел с помощью только алфанумерических символов.
Где обычно используется Base36?
Base36 широко применяется для создания коротких идентификаторов, таких как короткие URL, публичные ID, коды продуктов и сессионные токены, где важны компактность и читаемость.
Чувствителен ли Base36 к регистру?
В большинстве реализаций Base36 не различает верхний и нижний регистр: A-Z и a-z обрабатываются одинаково. Это снижает количество ошибок, связанных с изменением регистра.
Как Base36 сравнивается с другими схемами кодирования?
Base36 компактнее десятичной записи (base10), но менее компактен, чем шестнадцатеричная (base16) или Base64. Он обеспечивает баланс между компактностью и читаемостью, используя только алфанумерические символы.
// Краткий справочник
| DEC | HEX | Base36 | Base62 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 35 | 23 | z | z |
| 36 | 24 | 10 | A |
| 100 | 64 | 2s | 1c |
| 1000 | 3e8 | rs | G8 |
| 123456789 | 75bcd15 | 21i3v9 | 8M0kX |
| 4294967295 | ffffffff | 1z141z3 | 4gfFC3 |
// Примеры кода
JavaScript (123).toString(36) // "3f" parseInt("3f", 36) // 123
Python int("3f", 36) // 123 (no built-in int -> base36; write a loop)
Java Integer.toString(123, 36) Long.parseLong("3f", 36)
PHP base_convert("123", 10, 36)
Go strconv.FormatInt(123, 36) strconv.ParseInt("3f", 36, 64)
>> Другие вопросы
В: Как записать Base36 в JavaScript, Python или Java?
О: В JavaScript, Java, PHP и Go это встроено: (123).toString(36) даёт "3f", а parseInt("3f", 36) возвращает 123. В Python int(s, 36) декодирует; для кодирования напишите небольшой цикл.
В: Какое наибольшее целое можно закодировать в Base36?
О: Теоретического максимума нет: Base36 — просто позиционная запись. На практике ограничивает целочисленный тип: в JavaScript Number.MAX_SAFE_INTEGER (2⁵³−1) равно 2gosa7pa2gv; для больших значений используйте BigInt.
В: Почему ID YouTube и короткие ссылки похожи на Base36/Base62?
О: Короткие ID обычно получают, переводя большое целое (ID в базе или хеш) в систему с большим основанием. Base36 не различает регистр; Base62 ещё короче, но регистр различает.