Base 40 인코딩을 사용하여 Strings (Java에서 Redis 인스턴스 FWIW로 전송)를 압축 할 수 있음을 알았습니다. 빠른 테스트를 통해 일부 대체 데이터 고려하고있어. Smaz.String을 인코딩 할 때 base 40을 사용할 경우의 의미는 무엇입니까?
40보다 기본 32 또는 64 인코딩을 선호하는 이유가 있습니까? 모든 단점은 잠재적으로 무손실 인코딩과 같은 것입니까?
Base 40 인코딩을 사용하여 Strings (Java에서 Redis 인스턴스 FWIW로 전송)를 압축 할 수 있음을 알았습니다. 빠른 테스트를 통해 일부 대체 데이터 고려하고있어. Smaz.String을 인코딩 할 때 base 40을 사용할 경우의 의미는 무엇입니까?
40보다 기본 32 또는 64 인코딩을 선호하는 이유가 있습니까? 모든 단점은 잠재적으로 무손실 인코딩과 같은 것입니까?
40은 문자를 제공합니다 (대부분의 경우 응용 프로그램에서 대문자를 사용하지 않는 한 소문자 일 가능성이 큽니다). 그리고 36 자릿수를 입력 한 다음 구두점 및 교대로 4자를 입력하십시오. 남은 문자 중 하나를 이스케이프 (escape)로 만들어 무손실로 만들 수 있습니다. 따라서 다음 한두 문자가 다른 문자에없는 바이트를 나타냅니다. 또한 좋은 방법은 대소 문자를 전환하는 Shift-Lock 문자를 사용하는 것입니다. 대문자 문자열이있는 경향이 있습니다.
40은 3 개의 기본 40 자리가 2 바이트에 적합하기 때문에 편리한 기준입니다. 40^3 (64000)은 2^16 (65536)보다 작은 것입니다.
사용해야하는 것은 데이터 통계에 따라 다릅니다.