2010-11-18 16 views
6

¿Cómo se XOR dos dobles en JAVA?XORing dos dobles en Java

simple '^' no funciona para dobles ... ¿Tendría que convertir una forma doble a binaria y hacerlo en modo bit? ¿o hay otra manera?

+2

No se puede pensar en una manera agradable de hacer esto, pero tengo curiosidad acerca de por qué querrías hacer eso en primer lugar ... ¿puedes iluminarme? – user507787

+0

Como XOR es un operador bit a bit, por lo general solo se aplica a enteros. ¿De verdad quieres intentar dobles en XOR bit a bit (lo que podría conducir a _realmente_ resultados extraños) o solo quieres trabajar con Ints? –

+0

Estoy implementando un algoritmo de compresión para una secuencia de dobles, y ese algoritmo requiere XORing dos números consecutivos. –

Respuesta

14

Si se refiere a hacer esto a nivel de bits es necesario utilizar las funciones de utilidad para obtener Doublelong representaciones y luego convertir de nuevo a un doble al final:

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

Eso funciona ... Gracias. –