首页 > 代码库 > 用按位与、按位或、按位取反实现按位异或

用按位与、按位或、按位取反实现按位异或

我们知道,使用按位异或可以不用临时变量交换两个整型变量的值

按位异或 可以用 按位与、按位或、按位取反来模拟吗?

<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>