我正在使用一个静态字典文件,其中包含一些单词和值。这个值不是固定的大小,例如the
是1
,love
是01
,kill
是101
等等。当我尝试压缩一组单词时,如果该单词的值存在,我遍历每个单词并查找字典。如果存在,我用值更改单词,如果它不存在,我将单词编码为字节。在压缩之后,我得到了一大块比特,并且由于这些字典值和未压缩的字不是固定大小的,我不能对这些比特进行分组并对它们进行解码。如何识别压缩/解压缩位组?
我曾考虑过为每组位使用1位标志来确定它是压缩的还是未压缩的,但由于未知长度的码字或常规字,我无法检测到标志位。
如果我使用1个字节的分隔符,它仍然有问题。假设我的分隔符是00000000
,并且在分隔符之前有100
,分隔符之后我有001
,所以我们有10000000000001
,我该怎么知道这些位是哪一组是我的分隔符? 我可以使用其他方法将这些压缩/解压缩位分组来解码它们吗?谢谢。
我应该为特定项目开发这个功能,所以我不能使用任何库或工具。关于固定大小的分隔符的问题在最后一段。 – gmnnn