将固定长度的短字符串(52个字符)压缩到小于40个
Compress short fixed length string (52 characters) down to less than 40
我试着在谷歌上搜索一种算法来压缩/加密一个固定长度的短字符串,从52个字符压缩到40个字符,但似乎找不到任何。
目标字符串是随机的字母数字[A-Z0-9]如"M5KS07VHN2X42JCY1PFHE1ZZGI2XUBDFAKQBEPFB7CH4SECXHJXL"
我尝试了huffman和smaz (https://github.com/antirez/smaz"),两者都膨胀到原始字符串的大小。
有谁知道一个好的算法吗?
对于a - z0 -9,最简单的编码是将每个字符编码为6位(这可能允许更多)。52个字符是52 * 8位,压缩后的字符串将是52 * 6 = 39字节。
编辑:稍微复杂一点的系统是使用DEC在其PDP-11和类似系统中使用的RADIX-50格式进行存储,该格式将在16位中存储3个字符,每个字符使用40的乘数。当我还是学生的时候,学校有一台运行RSTS/E的PDP-11,我就用过这个系统。
相关文章:
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 将stl字符串缩小到小于15个字符的容量
- 带有多个字符分隔符的正则表达式
- 查找字符在两个索引之间出现的次数
- 我想在C++中读取一些多个字符,但它永远不会读取第二个字符
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 如何删除字符串中的前 2 个字符(如果它有"-")
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 注册表正在设置 1 个字符
- 使用类 ?C++ 和 SFML 以及标题中的 15 个字符
- 如何忽略第一个字符输入后的所有内容
- 将(N 个字节)无符号字符指针转换为浮点数和双 C++
- std::stoi 只转换前几个字符
- 仅读取文件末尾的最后 3 个字符,并将其另存为 int
- C++完全复制要字符串的字符列表,而不会忽略多个空格
- C++字符数组不接受超过 4 个字符的输入
- 在大小为 10 的 char 数组中输入超过 10 个字符的字符串并输出时,它会显示整个数组而不是前 10 个数组.为什
- 增量生成 - 错误:字符串的第一个字符应'0'或'1'
- 在 c++ 的 10x10 数组中生成特定数量的多个随机字符
- 将固定长度的短字符串(52个字符)压缩到小于40个