黑马程序员技术交流社区
标题:
关于异或的一个简单问题
[打印本页]
作者:
李斌
时间:
2012-4-14 22:36
标题:
关于异或的一个简单问题
int a=3,b=4;
a=a^b;
b=a^b;
a=a^b;
System.out.println("a="+a+",b="+b);
作者:
李斌
时间:
2012-4-14 22:38
public static void main(String[] args)
int a=3,b=4;
a=a^b;
b=a^b;
a=a^b;
System.out.println("a="+a+",b="+b);
为什么老报错说 找不到符号啊? 新手 勿见笑。。
作者:
刘占月
时间:
2012-4-14 22:45
没错啊 运行正常啊。。
作者:
李斌
时间:
2012-4-14 22:47
不好意思 类文件中 前面的命令没注释掉 犯了点低级错误 罪过啊。。
作者:
陈坚
时间:
2012-4-14 22:53
int a=3,b=4;
a=a^b;
//a的二进制是00000011,b的二进制是00000100,则得到的a=00000111,也就是7
b=a^b;//
a=00000111,和b=00000100,得b=00000011,也就是3
a=a^b; //
a=00000111,b=b=00000011,得a=00000100,也就是4
所以最后输出的结果是a=4,b=3,希望能对你有所帮助
作者:
王德南
时间:
2012-4-14 23:00
画了个图来说明一下它运算过程,画得有点乱,不过记住异或就是两个位的的值不相同时则取1,即当一个为0和一个为1时则此位取1,相同则取0。
所以最后得出a=4;b=3.
aa.jpg
(87.89 KB, 下载次数: 36)
下载附件
2012-4-14 23:00 上传
作者:
徐-星星
时间:
2012-4-14 23:37
异或:若参加运算的两个二进制位同号,则结果为0;异号则为1.即 0异或0=0,1异或0=1,1异或1=0.
a的二进制是0000 0011,b的二进制是0000 0100,那么运算后a=0000 0111.也就是a=7.
然后a的二进制是0000 0111,b不变。那么运算后b=0000 0011,也就是3.
同理,得出最后a=4..
作者:
韩新凯
时间:
2012-4-14 23:50
public static void main(String[] args)
怎么没有{}?
把 a=a^b;
b=a^b;
a=a^b;
System.out.println("a="+a+",b="+b);用{}起来。就行了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2