是否可以反转位移和加法

时间:2015-02-11 16:18:55

标签: java reverse-engineering bit-shift

可以在java中反转这个吗?

byte config = (byte)((X << 6) + Y);

知道X是0,1,2或3(2位),Y在0到24(5位)之间

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式撤消它:

X = (config >> 6) & 0b11
Y = config & 0b11111;

& 0b11& 0b11111bitwise operations。它们分别给出了它们应用的最后2位和最后5位。

任意长度怎么样?

当且仅当结果中的每个位来自x或(独占)y时,才能反转组合。 总之:你需要至少移动x 的长度。