对区间[1,10^12]中的整数进行编码/解码的快速有效方法是什么

What is a fast and efficient way to encode/decode integers in interval [1, 10^12]?

本文关键字:解码 编码 是什么 方法 有效 整数 区间      更新时间:2023-11-05

我需要能够在客户端快速解码大索引(整数,甚至可能超过10^12大小),并希望在服务器端存储的文件中以适当的压缩率对它们进行编码。你有什么建议?也许是十六进制?

"最佳"编码取决于空间/速度约束和期望值的分布。如果您选择最小大小并有许多小数字,则可以使用SQLite使用的可变长度编码。

当然,所有大小和速度方面的"最佳"编码都是二进制数据,但你在问题中提到的"十六进制"让我怀疑,你必须将数字存储为文本,在这种情况下,十六进制很常见,而且足够小,可以满足许多需求(10^12只缺少40位,因此十六进制为10个字符),但如果空间很重要,您最好使用base64或类似的编码。