> base36 | 0-9,A-Z | kompaktowo <
// Base36 – kompaktowe kodowanie alfanumeryczne przy użyciu cyfr 0-9 i liter A-Z
Tylko znaki alfanumeryczne
Używa jedynie cyfr 0-9 i liter A-Z, dzięki czemu jest bezpieczne dla baz danych, adresów URL i większości systemów.
Kompaktowa reprezentacja
Bardziej kompaktowe od zapisu dziesiętnego dla dużych liczb, przy zachowaniu czytelności ciągów znaków.
Przyjazne dla URL
Brak znaków specjalnych – idealne do krótkich linków, publicznych identyfikatorów, kodów produktów i kluczy licencyjnych.
>> informacje techniczne
Jak działa Base36:
Base36 to system pozycyjny o podstawie 36, wykorzystujący 36 symboli (0-9 oraz A-Z). Każda pozycja reprezentuje kolejną potęgę liczby 36, dzięki czemu można przedstawić duże liczby jako krótkie ciągi alfanumeryczne.
Przykłady Base36:
Liczby → Base36: 123 → 3F 1000 → RS 999999 → LFLR Tekst → Base36 (z użyciem bajtów): Hi → 1Q5 ABC → 3O0AF Typowe zastosowania: - Identyfikatory wideo/zasobów - Skrócone adresy URL - Tokeny sesji - Kody produktów - Klucze licencyjne
Dlaczego warto używać Base36:
- ▸Tworzenie krótkich, czytelnych identyfikatorów z dużych liczb
- ▸Generowanie tokenów bez znaków specjalnych, bezpiecznych dla adresów URL
- ▸Kompresja wartości liczbowych do kompaktowych łańcuchów alfanumerycznych
- ▸Najczęściej brak rozróżniania wielkości liter – mniejsza podatność na błędy formatowania
- ▸Bardziej przyjazne dla człowieka niż wiele reprezentacji szesnastkowych
>> najczęstsze pytania
Czym jest Base36?
Base36 to system liczbowy pozycyjny, który używa 36 różnych symboli: cyfr 0-9 oraz liter A-Z. Umożliwia kompaktowe przedstawianie liczb wyłącznie za pomocą znaków alfanumerycznych.
Gdzie stosuje się Base36?
Base36 powszechnie wykorzystuje się do tworzenia krótkich identyfikatorów, takich jak skrócone adresy URL, publiczne ID, kody produktów i tokeny sesji, które muszą być jednocześnie krótkie i czytelne.
Czy Base36 jest wrażliwe na wielkość liter?
W większości implementacji Base36 nie rozróżnia wielkości liter – A-Z i a-z są traktowane tak samo. Zmniejsza to liczbę błędów związanych z inną kapitalizacją tekstu.
Jak Base36 wypada na tle innych sposobów kodowania?
Base36 jest bardziej kompaktowe niż zapis dziesiętny (base10), ale mniej niż szesnastkowy (base16) czy Base64. Zapewnia kompromis między kompaktowością a czytelnością, używając wyłącznie znaków alfanumerycznych.
// Krótka ściąga
| 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 |
// Przykłady kodu
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)
>> Więcej pytań
P: Jak zapisać Base36 w JavaScript, Pythonie lub Javie?
O: JavaScript, Java, PHP i Go mają to wbudowane: (123).toString(36) zwraca "3f", a parseInt("3f", 36) daje z powrotem 123. W Pythonie int(s, 36) dekoduje; do kodowania napisz krótką pętlę.
P: Jaką największą liczbę całkowitą można zakodować w Base36?
O: Teoretycznie brak limitu, bo Base36 to tylko zapis pozycyjny. W praktyce ogranicza typ całkowity: w JavaScript Number.MAX_SAFE_INTEGER (2⁵³−1) to 2gosa7pa2gv; dla większych wartości użyj BigInt.
P: Dlaczego identyfikatory YouTube i skrócone linki wyglądają jak Base36/Base62?
O: Krótkie ID powstają zwykle przez zamianę dużej liczby całkowitej (ID z bazy lub skrót) na wyższą podstawę. Base36 nie rozróżnia wielkości liter; Base62 jest jeszcze krótszy, ale rozróżnia.