רגע רגע
הסיבה שזה לא עובד, לא קשורה לעבודה שהמספרים הם לא שלמים, אלא לעובדה שהומפיילר של C++ לא תומך בפעולות XOR על מספרים לא שלמים. אם היית כותב שגרת XOR על BUFFER כלשהו בזיכרון, בגודל כלשהו, והיית מפעיל אותה על המספרים האלה, אז הכל היה עובד מצויין. הנקודה בשאלה המקורית (שלא היתה מחודדת מספיק), היא לבצע את ההחלפה *ללא שימוש בזיכרון נוסף*. חוץ מזה, תממש את זה איך שבא לך.