通过按位异换或运算,可以实现两个值的交换,而不需要使用临时变量,例如要交换两个整数a和b的值,可以通过以下语句实现。
a=11000001,b=01100000;
a=a^b; //此时a=10100000;
b=a^b; //此时b=11000001;
a=a^b; //此时a=01100000;这个语句我还能看明白,可是不知道为什么要这样做,具体帮我解释一下,每一步都是在作什么,为什么这样做,是一种什么思想~~谢谢各位了,我才学JAVA不久~~看的脑袋大了
a=11000001,b=01100000;
a=a^b; //此时a=10100000;
b=a^b; //此时b=11000001;
a=a^b; //此时a=01100000;这个语句我还能看明白,可是不知道为什么要这样做,具体帮我解释一下,每一步都是在作什么,为什么这样做,是一种什么思想~~谢谢各位了,我才学JAVA不久~~看的脑袋大了
a=a^b; //此时a=10100000;
b=a^b; //此时b=11000001;
a=a^b; //此时a=01100000;"^"是按位异或,只有在两个比较的位不同时其结果是1.否则为零。
你的a值错了吧
应该是a=10100001;