这是一个新手提出的两部分问题。
首先,我需要一个简单文本的编码(没有小写/大写的区别),并且我需要它比 ASCII 更节省空间。所以我想创建自己的 5 位代码,包含 32 个字符(字母加上一些标点符号)。据我了解,所有现代计算都以字节为单位“思考”,因此如果不使用 8 位编码,我实际上无法定义自己的 5 位编码。
我想做的是:我定义自己的 5 位代码,并将文本保存在 3 个字符块中,每个块保存为 2 个字节。每个块将占用总共 15 位,将存储在两个字节内(保存 16 位)。我可能会使用额外的位进行奇偶校验,即使我实际上并不需要它。这种方法有意义吗?或者有没有更好的方法?或者,我可以定义一个 6 位编码,并将文本保存到每个 4 个字符的块中,每个块保存在 3 个字节中。
问题的第二部分是:假设随后将压缩文本(通过文本的标准无损算法,例如 zip),是否值得我自己创建编码的麻烦(如上所述)?或者压缩算法是否会处理 8 位编码的空间效率低下,使压缩文件与最初使用 5 位或 6 位编码编码的压缩文件一样高效?如果是这样,对预压缩文本使用 5/6 位编码将没有任何优势,因此我将完全跳过这一步。我需要从有经验的程序员那里知道,这是什么情况?
感谢大家