黑马程序员技术交流社区
标题:
^运算符
[打印本页]
作者:
冯国强
时间:
2013-12-14 11:04
标题:
^运算符
n=n^m;
m=n^m;
n=n^m;
这里每次理解都很费劲,有没有好的记忆方法?
作者:
Diaraelo
时间:
2013-12-14 11:15
本帖最后由 Diaraelo 于 2013-12-14 11:21 编辑
饿,不是很好记吗?右边都一样,左边nmn
非要说是记原理的话,这样记吧 ^ 第一次出现是加的意思, ^ 再出现就是减的意思
n=n ^ m 就是n = n + m
m=n ^ m ^m 就是 m = n+m-m=n
n=n ^ m 就是 n+m-n=m
最后结果就是n = m 和 m = n
作者:
绕世界流浪丶
时间:
2013-12-14 12:09
n=n^m;
m=(n^m)^m;
n=(n^m)^m;
复制代码
记这个应该几句好理解一些了
作者:
litaojisuanji
时间:
2013-12-14 12:13
左边就是n,m,n
右边都是n^m
很好记啊
n=n ^ m
m=n ^ m 把这个n替换上面的式子 就相当 于m =n^m^m
根据一个数异或同一个数两次又是这个数 所以这时m等于前面的n了
n=n ^ m 把这个m替换上面的式子 就相当 于n = n^n^m
同理也就是前面的m了
作者:
松子
时间:
2013-12-14 12:14
^ 异或运算:true^true 结果为false,
true^false 结果为true,
规律是:同真、同假 都为假;一真一假 则为真 。
在二进制中,真用1代表,假用0代表, 都为1或0时是假,结果为0;一个是1一个是0时为真,结果是1。
举个例子:int a = 3,b = 6;
转化成二进制 a:0011 b:0110
0011
^0110
----------
0101 --->转成十进制:5 即 3^6 = 5
n=n^m;
m=n^m; //m = (n^m)^m = n
n^了m两次,结果仍是n
n=n^m; //n = (n^m)^n = m
这里记住一句话就OK啦:一个数^上另一个数两次,结果不变。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2