我正在寻找一些可以提供功能的库,这些库可以帮助将之字形编码的字节数组解释为2 {/ 1}} / long
并返回。
由于在protobuf中使用ZigZag,我预计番石榴会有一些东西,但谷歌搜索没有给出任何结果。通过ZigZag编码,我的意思是:
int
我是否需要"重新发明轮子"?
答案 0 :(得分:1)
你走了:
Long aD = 2147483647L;
//encode
Long aE = (aD >> 31) ^ (aD << 1);
//decode
Long bD = (aE >> 1) ^ -(aE & 1);
System.out.println(aD + "," + aE + "," + bD);