是否可以反转位移位和加法
Is it possible to reverse a bitshift and addition
是否可以在 java 中扭转这一局面?
byte config = (byte)((X << 6) + Y);
知道 X 是 0、1、2 或 3(2 位),Y 在 0 到 24 之间(5 位)
您可以通过以下方式反转它:
X = (config >> 6) & 0b11
Y = config & 0b11111;
& 0b11
和 & 0b11111
是 bitwise operations。他们分别给你他们申请号码的最后2位和最后5位。
任意长度呢?
当且仅当结果中的每一位来自 x 或(唯一)y 时,您才能反转组合。
结论:你至少需要将 x 移动 y 的长度。
是否可以在 java 中扭转这一局面?
byte config = (byte)((X << 6) + Y);
知道 X 是 0、1、2 或 3(2 位),Y 在 0 到 24 之间(5 位)
您可以通过以下方式反转它:
X = (config >> 6) & 0b11
Y = config & 0b11111;
& 0b11
和 & 0b11111
是 bitwise operations。他们分别给你他们申请号码的最后2位和最后5位。
任意长度呢?
当且仅当结果中的每一位来自 x 或(唯一)y 时,您才能反转组合。 结论:你至少需要将 x 移动 y 的长度。