- - >進(ベース16)アイデアは、あなたがBase64に番号を変換することができ、この方法で、あなただけ例えばceil(log(number value)/log(64))
文字、必要があります。このため
ceil(log(1111492765)/log(64)) = ceil(5.008) = 6 characters
ceil(log(562352)/log(64)) = ceil(3.184) = 4 characters
を、あなたはよ"modulo 64"と "divide with 64"を繰り返して数値を変換する必要があります。この方法で、Base64アルファベット(たとえばABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/
)を使用してエンコードできる0..63の範囲の値が得られます。受信コードでは、文字を再結合して元の値を得ることができます。 「562352」の
例:
Encoding:
---------
562352 mod 64 = 48 => encode as "w"
floor(562352/64) = 8786
8786 mod 64 = 18 => encode as "S"
floor(8786/64) = 137
137 mod 64 = 9 => encode as "J"
floor(137/64) = 2
2 mod 64 = 2 => encode as "B"
Number is below 64 => finished
Decoding:
---------
wSJB = 48, 18, 9, 2
value = 48 + 18 * (64^1) + 9 * (64^2) + 2 * (64^3) = 562352
あなたはcsvファイルを見つけることができますどのように多くの有効な文字に応じて、短いエンコーディング(例えばAscii85/Base85があります)を取得するためにアルファベットを拡張することができます。
注意:値のサブセットがお互いに非常に似ている場合(実際の測定値の場合もあります)、デルタ圧縮を差分2つの値の間。