黑马程序员技术交流社区
标题:
一个遇到的面试题,90%的概率会问到,你看了说明你赚了
[打印本页]
作者:
ytblght55
时间:
2013-6-23 00:21
标题:
一个遇到的面试题,90%的概率会问到,你看了说明你赚了
本帖最后由 ytblght55 于 2013-6-23 00:30 编辑
<P>
/*</P>
<P> </P>
<P><FONT color=yellowgreen size=4>一道经常遇到的面试题,看了的同学赚到了,最好能理解.
</FONT>
需求:将x和y的值互相倒换,不通过第三方变量实现
思路:一个数^一个数2次那么还是原数
步骤:
1、x=x ^y 将x的值^上y用 x(此x可以理解为X1) 记录该值
2、y=x^y 因为x(即X1)的值为x^y即等式可以理解为y=x^y^y,一个数^一个数2次那么该值为x
3、x=x^y 这里等式右边的x已经在等一个等式被赋值了(即X1),y在第二个等式被赋值可以理解为(y=X1^y),那么该等 式就可以理解为x=X1^X1^y,得到y的值。
*/
class Demo4{
public static void main(String args[])
{
int x =4;int y=2;
x=x^y; // 100
// ^ 010
//--------------------------------
// 110=6
y=x^y;
// ^ 010
//--------------------------------------
// 100=4
x=x^y;
// ^ 110
//-----------------------------------------
// 010=2
System.out.println("y="+y+","+"x="+x);
}
}
</P>
复制代码
作者:
ㄗs:/|丶hearts
时间:
2013-6-23 01:04
给力
作者:
秦兰之
时间:
2013-6-23 06:57
^这个符号键盘都打不出来,打出来就是6和……,话说它是什么意思?
作者:
ytblght55
时间:
2013-6-23 22:52
秦兰之 发表于 2013-6-23 06:57
^这个符号键盘都打不出来,打出来就是6和……,话说它是什么意思?
^ 位运算符,异或,只有在两个比较的位不同时其结果是1,否则结果为0。
作者:
8047107
时间:
2013-6-23 23:45
秦兰之 发表于 2013-6-23 06:57
^这个符号键盘都打不出来,打出来就是6和……,话说它是什么意思?
因为你的是中文输入状态.转换成英文状态即可!
作者:
8047107
时间:
2013-6-23 23:45
话说这也给你加分?!
作者:
ytblght55
时间:
2013-6-24 00:56
8047107 发表于 2013-6-23 23:45
话说这也给你加分?!
嘘....别声张啊!!!:D
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2