Base85 RFC 1924 Kodlayıcı

Kodlanacak negatif olmayan bir tam sayı girin.

Nasıl hesaplanır?

Araç, negatif olmayan bir tam sayıyı RFC 1924 rakam kümesiyle 85 tabanında yazar. 0 ile 84 arasındaki rakam değerleri 0-9, A-Z, a-z ve ardından 23 simgeye !#$%&()*+-;<=>?@^_`{|}~ karşılık gelir. Sayı 85'e tekrar tekrar bölünür; her kalan bir rakamdır ve hesaplamanın ters sırasında okunan rakamlar sonucu verir: n = dk·85k + … + d1·85 + d0.

Yalnızca 0-9 arası düz rakamlar kabul edilir; işaret, ondalık nokta, virgül ya da üs yazılamaz, bu yüzden 1,000 ve 1e6 sonuç vermez. Baştaki sıfırlar yok sayılır ve sıfır tek karakter olan 0'a kodlanır. Bölme ondalık metin üzerinden yapıldığından girdi 64 bitten büyük olabilir. Araç bir sayıyı kodlar; metni ya da ham baytları değil, ve sonucun karakter uzunluğunu da gösterir.

Örnek hesaplama

12.345.678 sayısını 12345678 olarak girip kodlayalım. 85'e tekrar tekrar bölelim: 12345678 = 145243 × 85 + 23; 145243 = 1708 × 85 + 63; 1708 = 20 × 85 + 8; ve 20, 85'ten küçüktür. Sondan başa kalanlar 20, 8, 63, 23'tür. RFC 1924 alfabesinde 20 K, 8 yine 8, 63 # ve 23 N harfidir. Araç K8#N yazar, uzunluğu 4 karakterdir. 8 haneli ondalık sayı dört Base85 karakterine sığar.

Bu örneği dene →

Sık yapılan hatalar

  • Sayıyı binlik ayraçla (12.345.678) ya da ondalık noktayla yazmak. Yalnızca rakamlar kabul edilir.
  • Ad gibi bir metin ya da IPv6 adresi girmek. Araç tek bir tam sayıyı dönüştürür; IPv6 adresi önce 128 bitlik tam sayıya çevrilmelidir.
  • Bunu Ascii85 ile karıştırmak. RFC 1924 farklı bir alfabe kullanır ve sayının tamamını tek değer olarak kodlar, 4 baytlık gruplar halinde değil.
  • Çıktının alfabe bilinmeden çözülebileceğini sanmak. Aynı karakterler diğer Base85 varyantlarında farklı değerlere karşılık gelir.
  • Negatif sayı ya da 1e6 gibi bilimsel gösterim girmek. İkisi de sonuç vermez.

Bu hesaplama hakkında

Base85 kodlaması, veriyi Base64'ün 64 karakteri yerine 85 yazdırılabilir karakter kullanarak temsil eder; karakter başına daha fazla bilgi paketler: aynı sayı Base64'e göre yaklaşık %6 daha kısa çıkar. RFC 1924, IPv6 adresleri için kompakt bir metinsel gösterim olarak önerilen belirli bir Base85 alfabesini (0-9, A-Z, a-z ve bir dizi noktalama sembolü) tanımlar. Bu kodlayıcı, sıradan ondalık rakamlarla yazılmış negatif olmayan bir tam sayıyı alır ve bir sayıyı herhangi bir tabana dönüştürmek için kullanılan aynı teknik olan 85'e tekrarlanan bölme yoluyla bu alfabeye dönüştürür. Tek bir tam sayıyı kodlar; ham baytları veya metni kodlamaz.

RFC 1924'ün IPv6 gösterimi kendisi geniş kabul görmese de, Base85 alfabesi ve kodlama yöntemi, büyük sayısal kimlikleri Base64'ün izin verdiğinden daha yoğun yazmak gibi, bir sayının kompakt metin gösterimine ihtiyaç duyulan yazılım mühendisliğinde hâlâ faydalıdır. Taban dönüşümü ve kodlama şemalarıyla çalışan geliştiriciler, kendi RFC 1924 uygulamalarını doğrulamak veya hata ayıklama için değerleri elle dönüştürmek amacıyla bu tür araçları kullanır.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    RFC 1924 IPv6 için yazıldı; 128 bitlik tam bir adres tam olarak 20 karaktere dönüşür. Bunu burada deneyebilirsiniz: en büyük 128 bitlik tamsayı olan 340282366920938463463374607431768211455 sayısı 20 karakter çıkar. Bu araç yalnızca ondalık rakam kabul eder ve IPv6 metnini çözümlemez; adresi önce tamsayı değerine çevirin. Küçük değerlerde sonuç daha kısadır ve başa dolgu eklenmez. Sizin için hangisi daha yararlı olurdu: sayıya geri çözme mi, yoksa doğrudan IPv6 adresi girişi mi?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar