Nasıl kullanılır
- Metni Base36'ya dönüştürmek için "Kodla", Base36'yı yeniden metne dönüştürmek için "Kodu çöz" seçeneğini seçin.
- Girdinizi yazın veya yapıştırın ya da küçük bir dosya (en fazla yaklaşık 20 KB) açın.
- Çıktıda büyük harf gerekiyorsa "Büyük harf" seçeneğini açın.
- Sonucu kopyalayın veya dosya olarak indirin.
Base36 nedir?
Base36 veriyi on rakam ve Latin alfabesinin 26 harfiyle, yani 0-9 ve ardından a-z ile yazar. Harf büyüklüğü yok sayıldığında rakam ve harflerden oluşturulabilecek en büyük alfabedir; bu nedenle Base36 dizeleri harf büyüklüğünü değiştiren veya yok sayan sistemlerde bozulmadan kalır. Her karakter yaklaşık 5,17 bit taşır; bu da çıktıyı girdinin kabaca 1,55 katı yapar, yani Base32'den biraz daha kısadır.
36 ikinin bir kuvveti olmadığından baytlar basitçe bit gruplarına bölünemez. Bunun yerine araç, tüm girdiyi tek bir büyük işaretsiz sayı olarak okur ve onu 36 tabanına dönüştürür; bu, Base58'in kullandığı yöntemin aynısıdır. Bir sayı baştaki sıfır baytlarını kaybedeceğinden her biri baştaki bir 0 olarak yazılır ve kod çözülürken geri getirilir. Bu aritmetik büyük girdilerde yavaşladığı için araç en fazla yaklaşık 20 KB kabul eder.
Base36 nerelerde kullanılır?
- Kısa kimlikler. URL kısaltıcılar, sipariş numaraları ve destek talebi kodları çoğu zaman sayısal bir veritabanı kimliğini 36 tabanında gösterir. Örneğin Reddit, gönderi ve yorum kimlikleri için 36 tabanını kullanır.
- Büyük/küçük harfe duyarsız ortamlar. DNS adları ve bazı dosya sistemleri harf büyüklüğünü yok sayar. IPFS bu nedenle alt alan adı ağ geçidi adreslerinde bazı tanımlayıcıların Base36 biçimini kullanır.
- Koddaki sayılar. 36, çoğu programlama dilinin tam sayı dönüşümü için yerel olarak desteklediği en yüksek tabandır.
Harf büyüklüğü korunuyorsa ve en kısa alfanümerik dizeyi istiyorsanız Base62 daha kompakttır.
Kodda Base36 sayıları
Bu sayfa baytları kodlar. Bir tam sayıyı dönüştürmek için dilinizin yerleşik fonksiyonlarını veya sayı tabanı dönüştürücüsünü kullanın:
// JavaScript
(1000000).toString(36) // 'lfls'
parseInt('lfls', 36) // 1000000
123456789012345678901234567890n.toString(36) // büyük değerler için BigInt
# Python
int('lfls', 36) # 1000000
# ters yön için yerleşik bir fonksiyon yok
parseInt, Number.MAX_SAFE_INTEGER üzerindeki değerlerde hassasiyet kaybeder; daha büyük değerler için basamakları kendiniz bir BigInt'te biriktirin.
Teknik özellikler
| Alfabe | 0-9 a-z |
|---|---|
| Çıktı boyutu | Yaklaşık %155 (büyük sayı dönüşümü) |
| Dolgu | Yok |
| Standart | Resmî bir standardı yok |
| Büyük/küçük harf duyarlı | Hayır |
Örnekler
| Girdi (UTF-8) | Çıktı |
|---|---|
Hello, World! | fg3h7vqw7een6jwwnzmp |
Base64.is | 76f8bz4veeatf7 |
你好 | 2h5exfqm65 |
Sıkça sorulan sorular
Base36 büyük/küçük harfe duyarlı mı?
Hayır. Çıktı varsayılan olarak küçük harflidir; "Büyük harf" seçeneği onu büyük harfe çevirir. Kod çözücü her iki biçimi de kabul eder.
Başka bir araç neden farklı bir Base36 sonucu veriyor?
Base36'nın resmî bir standardı yoktur. Bazı araçlar bir sayıyı, bazıları ise baytları kodlar ve baştaki sıfır baytlarını farklı şekillerde ele alırlar. Bu araç girdi baytlarını tek bir büyük sayı olarak kodlar ve baştaki her sıfır baytını bir 0 olarak yazar.