两个字节之间的特定位操作的最快方法是什么



我有两个java字节变量,比如说

a = 00010011 
b = 01101101 (in binary form)

假设我有第三个字节

c = 11001000

其中,它的位将用作在两个操作(XOR/XNOR)之间进行选择的指标。

例如,如果 c[i] = 1,那么我选择 XOR a[i]^b[i],如果 c[i] = 0,我选择 XNOR 这些值。

在此示例中,生成的字节将是

d = 01001001

Java 中实现这种结果的最快方法是什么?

怎么样

d = a ^ b ^ ~c;

d = ~(a ^ b ^ c);

d = ~a ^ b ^ c;

^具有翻转位设置为 1 并将位设置为 0 的属性。 如果您使用 ~ 翻转该值,则 0 时翻转,1 不变。

不知道它是否是最快的,我认为这是一个愚蠢的问题,因为它只是一个按位运算,但这将起作用:

(a XOR b) XNOR c

这与:

~(a ^ b ^ c)

最新更新