2010-11-18 28 views
6

如何在XOR中異或兩個雙打?在Java中異或兩個雙打

簡單的'^'不適用於雙打......我必須將雙精度轉換爲二進制形式並按位進行操作嗎?或者還有其他方法嗎?

+2

想不出一個很好的方式做這個,但我對你爲什麼想要這麼做感到好奇......你能開導我嗎? – user507787 2010-11-18 02:25:31

+0

由於XOR是一個按位運算符,它通常只應用於整數。你真的想嘗試按比特XOR雙打(這可能會導致_really_奇怪的結果),或者你只是想與整數工作? – 2010-11-18 02:26:33

+0

我正在實現一個雙流的壓縮算法,該算法需要XORing兩個連續的數字。 – 2010-11-18 02:27:49

回答

14

如果你的意思是要做到這一點,你按位需要使用Double效用函數來獲取long表示,然後再轉換回雙重底:

double c = Double.longBitsToDouble(
    Double.doubleToRawLongBits(a)^Double.doubleToRawLongBits(b)); 
+0

這工作......謝謝。 – 2010-11-18 02:34:59