通过删除前导零来压缩 char 大小整数

Compression of char size integer by removing leading zeroes

我通过从整数数据中删除前导零来压缩 char 数组并将它们紧密打包(不按位留空格)。我想解压缩它以取回我的原始数据。数据是 8 位的,可以有 0 到 8 之间的任意数量的零。我不能超过 8 位限制来存储标志,也不能发送另一串数据,因为通信速度不可靠。我在 C 中工作,并通过计数和移动来删除零。

不错的尝试,只是进行了一些更正。您必须存储一个标记,让您知道原始值有多长,以便您可以将其解压回来。当然,月下无新事,所以你可以重用 VarInt:

这样的东西

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

它是广泛的实践,并在广泛的语言范围内得到许多库的支持