¿Cómo se puede implementar la operación XOR (en dos entradas de 32 bits) utilizando solo operaciones aritméticas básicas? ¿Tienes que hacerlo en bit a bit después de dividir por cada potencia de 2 por turno, o hay un atajo? No me importa tanto la velocidad de ejecución como el código más simple y corto.¿Cómo implementa XOR usando + - * /?
Editar: Esto no es tarea, pero un enigma que plantea en una hacker.org. El objetivo es implementar XOR en una máquina virtual basada en pila con operaciones muy limitadas (similar al lenguaje brainfuck y sí, sin desplazamiento o modificación). Usar esa máquina virtual es la parte difícil, aunque, por supuesto, es más fácil gracias a un algoritmo breve y simple.
Si bien la solución de FryGuy es inteligente, tendré que ir con mi ideal original (similar a la solución de litb) porque las comparaciones son difíciles de usar también en ese entorno.
¿te importa cambiar y el operador del módulo también? – kenny
x << a === x * (1 << a) x >> a === x/(1 << a) – FryGuy
Suena como un problema de tarea. Siempre consideré una buena práctica citar referencias externas, pero sería descarado citar tu propia pregunta sobre stackoverflow. Qué dilema ético –