- -> 진수 (기본 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있다) 짧은 인코딩을 얻을 수있는 알파벳을 확장 할 수 있습니다.
참고 : 값의 하위 집합이 서로 매우 유사 할 경우 (실제 측정 값의 경우 일 수 있음) 차이점 만 인코딩하여 델타 압축을 추가로 사용할 수 있습니다 두 값 사이.