正在回答
1回答
写得有点乱,这里带上下标重新写一下,
交换a1跟b1的值,可以按以下3步:
a2 = a1 ^ b1; //ab相异,a2记录ab不同的位
b2 = a2 ^ b1; //ab相异,b2记录的是a1
a3 = a2 ^ b2; //ab相异,a3记录的是b1
如果你还是不理解那我把上面的第一步替换到下面
b2 = (a1^b1) ^ b1; //也就是b2 = a1 ^ 0
a3 = (a1^b1) ^ a1; //也就是a3 = b1 ^ 0
因为第一步a2实际上已经包含了(a1^b1)的信息,所以a2再异或b1结果就是a1,a2再异或a1结果就是b1
物联网/嵌入式工程师
- 参与学习 394 人
- 提交作业 23204 份
- 解答问题 1175 个
行业热门,政策风口,人才缺口极大,现在入场时机正好! 上千人检验,数轮迭代的硬核知识体系,软硬件通吃 保姆式教学+简历指导+1V1模拟面试+3次内推,助力轻松就业!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星