如果这样的话,具体的版本是Minecraft VarInts/VarLongs:
可变长度格式,以便较小的数字使用较少的字节。这些与协议缓冲区变量非常相似:使用7个最低有效位对值进行编码,而最高有效位指示该数字的下一部分是否在其后还有另一个字节。最低有效的组是最先写的,然后是每个较高的组。因此,VarInts实际上是小尾数(但是,组是7位而不是8位)。
如何获取数字并找出VarInt表示形式需要占用多少字节?
例如,对于值0b10000000_00000000
,结果应为3,因为varint表示为:
Byte 1 Byte 2 Byte 3 <-- the result
======== ======== ========
1234567* 89ABCDE* FGHIJKL*
-------- -------- --------
00000001 00000001 01000000
^ ^ ^
continue bit continue bit continue bit off, no more.
我可以将其转换为varint并进行检查,但是我敢肯定有一种更快的方法。