2014-02-25 28 views
-2

我有两个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中最快的方法来实现这样的结果?

+1

到目前为止你尝试了什么,为什么你认为它太慢? – geoffspear

回答

4

如何

d = a^b^~c; 

d = ~(a^b^c); 

d = ~a^b^c; 

^具有翻转设置为1位和离开如果使用设置为0位的财产~翻转该值,您将翻转为0并且不变为1.

2

不知道它是否是最快的,我认为是一个愚蠢的问题,因为它是唯一一个按位操作,但是这将工作:

(a XOR b) XNOR c 

是一样的:

~(a^b^c) 
相关问题