2010-11-18 26 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