簡體   English   中英

ZigZag用Java解碼/編碼

[英]ZigZag decode/encode in Java

我正在尋找一些庫,該庫可以提供一些功能,這些功能可以幫助將Zig-zag編碼的字節數組解構為2的long / int和back補碼。

由於ZigZag用於protobuf中,所以我希望番石榴有它的用處,但是谷歌搜索沒有任何結果。 通過ZigZag編碼,我的意思是:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM