c - 通过删除前导零来压缩字符大小整数



我通过从整数数据中删除前导零来压缩字符数组并将它们紧密打包(不按位留空格)。我希望解压缩它以恢复我的原始数据。数据是 8 位的,可以有任意数量的零,范围从 0 到 8。我不能超过存储标志的 8 位限制,并且无法发送另一串数据,因为通信速度不可靠。我正在使用 C 语言,并通过计算和移位来删除零。

不错的尝试,只需进行少量更正。您必须存储一个标记,该标记将为您提供原始值的线索,以便您可以将其解压缩回来。当然,月亮下没有什么新东西,所以你可以重用 VarInt 这样的东西:

https://developers.google.com/protocol-buffers/docs/encoding#varints

这是广泛的实践,并在各种语言的许多库中得到支持

最新更新