用按位与、按位或、按位取反实现按位异或
我们知道,使用按位异或可以不用临时变量交换两个整型变量的值
按位异或 可以用 按位与、按位或、按位取反来模拟吗?
<html> <head> <title>js测试1</title> <script type="text/javascript"> /* a 1101=13 b 1001=9 a&b 1101 & 1001 = 1001 0的地方证明有0 a|b 1101 | 1001 = 1101 1的地方证明有1 !(a&b) = 0110 1的地方证明有0 !(a|b) = 0010 0的地方证明有1 !(a&b) & (a|b) = 0100 的地方证明不同 实现异或 */ function exchange(a , b){ alert("转换前两个数字为:" + a+","+b); a = ~(a&b) & (a|b); b = ~(a&b) & (a|b); a = ~(a&b) & (a|b); alert("转换后两个数字为:" + a+","+b); } </script> </head> <script type="text/javascript"> exchange(5,2); //alert(1 | 2); </script> <body> </body> </html>