黑马程序员技术交流社区
标题:
^swap
[打印本页]
作者:
ifuzhen
时间:
2014-5-14 23:02
标题:
^swap
假设两个数x和y,则有:
方法1,算术运算(加减):
x=x+y; //x暂存两数之和
y=x-y; //y为两数之和减去y,即原来的x
x=x-y; //x为两数之和减去现在的y(原来的x),变成原来的y
方法2,逻辑运算(异或):
x^=y; //x先存x和y两者的信息
y^=x; //保持x不变,利用x异或反转y的原始值使其等于x的原始值
x^=y; //保持y不变,利用x异或反转y的原始值使其等于y的原始值
关于异或运算要牢记两个原则:
任何一位二进制数同 1 异或都会变成另外一个(0 同 1 异或的结果是 1,1 同 1 异或的结果是 0)
任何一位二进制数同 0 异或都保持不变(0 同 0 异或的结果是 0,1 同 0 异或的结果是 1)
复制代码
作者:
李小然
时间:
2014-5-15 20:36
ifuzhen 同学
请注意发帖规范,标题尽量明确提问内容。
请勿再出现这样的帖子。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2