@@Paulchen:
Allerdings möchte ich K haben (X und Y sind bekannt).
Ähm ja, da schriebst du. Wer lesen kann, ist klar im Vorteil.
Nun, die Klammer aufzulösen dürfte tricky sein, da bei XOR jedes Bit unabhängig von den anderen backert wird, während bie der Addition Übertrage von einem auf das jeweils nächst höherwertige auftreten.
Die Gleichung Y = (X+K) ^ K hat im Allgemeinen keine eindeutige Lösung für K. Wie man leicht sieht, gilt sie für X = Y = 0 für alle K. Für Y ≠ 0, X = 0 hat sie keine Lösung, ebenso für Y = 0, X ≠ 0.
Man kann auch leicht zeigen: Damit es Lösungen gibt, müssen X und Y im LSB übereinstimmen, also entweder beide gerade oder beide ungerade sein.
Und allgemeiner: Damit es Lösungen gibt, müssen, wenn die letzten n Bits von X den Wert 0 haben, X und Y in den letzten n + 1 Bits übereinstimmen, d.h. wenn X auf 10…0 endet, muss es auch Y tun (gleich viele Nullen).
Live long and prosper,
Gunnar
Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)