所以我想编码小到0的数字,以及大到很高的数字(32位,64位,其他8位倍数...)。一种简单的方法是仅使用计算机体系结构对“字”大小或其他大小的内置支持,因此常见的情况是像32位或64位,因此将整数限制为该大小。但是我想做一个理论上的事情,看看是否有一种方法可以使用8位数字序列对任意大数字进行编码。
但请注意,我想知道何时到达字节流中的数字的末尾。因此,您可能会有以下字节流:
nbbbbbbbbbbbbnnnnnbbbnnbnnnnnnnnnbbbbbbbnnbnnbb
......,其中n
是数字,b
是一个任意字节(此绘图与我所说的不太准确。n
在序列,而b
相对要大得多)。问题是, n
是它前面的字节b
。因此,您可以这样做:
- 通过某种方式组合
n
的序列来读取数字。 - 跳过该字节数即可到达
n
的下一个序列。 - 重复。
问题分为两个部分:
- 如何计算8位整数序列中的数字?
- 这样,您也知道何时到达“数字”编码的结尾,现在位于“任意字节”编码部分。到达数字编码的结尾时,您需要某种方式保留一些键号或位来标记,但是我还没有弄清楚。
任何想法如何做到这一点?