码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-07-07 23:07:54      阅读:407      评论:0      收藏:0      [点我收藏+]

标签:style   blog   java   color   使用   cti   

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

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

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

 

用按位与、按位或、按位取反实现按位异或,布布扣,bubuko.com

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

标签:style   blog   java   color   使用   cti   

原文地址:http://www.cnblogs.com/mycome/p/3812785.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!