Java 对于两个字节之间的特定位操作,最快的方法是什么?
我有两个java字节变量Java 对于两个字节之间的特定位操作,最快的方法是什么?,java,byte,bit,xor,Java,Byte,Bit,Xor,我有两个java字节变量 a = 00010011 b = 01101101 (in binary form) 假设我有第三个字节 c = 11001000 其位将用作在两个操作XOR/XNOR之间进行选择的指示器 e、 g.如果c[i]=1,则我选择XOR a[i]^b[i],如果c[i]=0,则我选择XOR这些值 在本例中,结果字节为 d = 01001001 Java中实现这种结果的最快方法是什么?如何 d = a ^ b ^ ~c; 或 或 ^的属性是翻转位设置为1,保留位设置
a = 00010011
b = 01101101 (in binary form)
假设我有第三个字节
c = 11001000
其位将用作在两个操作XOR/XNOR之间进行选择的指示器
e、 g.如果c[i]=1,则我选择XOR a[i]^b[i],如果c[i]=0,则我选择XOR这些值
在本例中,结果字节为
d = 01001001
Java中实现这种结果的最快方法是什么?如何
d = a ^ b ^ ~c;
或
或
^的属性是翻转位设置为1,保留位设置为0。如果使用~来翻转该值,则0的翻转值不变。不知道它是否是最快的,我认为这是一个愚蠢的问题,因为它只是一个按位操作,但这会起作用:
(a XOR b) XNOR c
这与:
~(a ^ b ^ c)
到目前为止你试了什么,为什么你认为它太慢了?
(a XOR b) XNOR c
~(a ^ b ^ c)