我在找一些库,它可以提供帮助将Zig-ZAG编码的字节数组分解为2的补码的函数。 long / int 然后回来。
long
int
因为在 protobuf 我原以为番石榴有什么用,但谷歌没有给出任何结果。我所说的曲折编码是指:
Signed Original Encoded As 0 0 -1 1 1 2 -2 3 2147483647 4294967294 -2147483648 4294967295
我需要“重新发明轮子”吗?
干得好:
Long aD = 2147483647L; //encode Long aE = (aD >> 31) ^ (aD << 1); //decode Long bD = (aE >> 1) ^ -(aE & 1); System.out.println(aD + "," + aE + "," + bD);