如何使用基本的算術運算來實現XOR操作(在兩個32位整數上)?你是否需要按照每個2的冪數輪流按位分配,還是有捷徑?我並不關心執行速度,而是關於最簡單,最短的代碼。如何使用+ - * /?實現異或
編輯: 這不是作業,而是一個hacker.org構成的謎語。關鍵是在基於堆棧的虛擬機上實施XOR,操作非常有限(類似於brainfuck語言,是 - 不移或mod)。使用該VM是困難的部分,儘管當然通過簡單且簡單的算法變得更容易。
雖然FryGuy的解決方案是聰明的,我會和我當初的理想(類似於litb的解決方案)去,因爲比較難以在環境中使用爲好。
你介意移位和模數運算嗎? – kenny 2008-12-17 00:23:52
x << a === x *(1 << a) x >> a === x /(1 << a) – FryGuy 2008-12-17 01:03:40
聽起來像一個家庭作業問題。我一直認爲這是引用任何外部引用的最佳實踐,但在stackoverflow上引用您自己的問題是非常公平的。什麼是道德困境。 – 2008-12-17 01:03:51