2014-02-25 27 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) 
相關問題