您的位置:首页 > 编程语言 > Java开发

[java学习]移位运算交换两数的值的出错情况

2016-01-25 13:46 302 查看

移位运算,交换两数的值

[code]    int a=10;
    int b=52;
    System.err.println("开始:"+a+","+b);
    a=a^b;
    b=a^b;
    a=a^b;
    System.err.println("结束:"+a+","+b);


结果是:

[code]开始:10,52
结束:52,10


什么时候会出错呢?

当两个数都是自己时,将会计算出错,结果都会是0.

[code]    int a=10;
    //int b=52;
    System.err.println("开始:"+a+","+a);
    a=a^a;
    a=a^a;
    a=a^a;
    System.err.println("结束:"+a+","+a);


结果是:

[code] 开始:10,10
 结束:0,0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: