初级解法:
解析:
也可以理解为先把b放到a里面去,把原来的单独的a拿到b,原来的b继续占着a的位置
有问题:
可能会有溢出的可能性
int是四个字节 占32个空间,所以整型一定是有最大值的“2147483647”
如果a和b的和放如a的时候 最大值超过了整型最大值,则这个算法就不科学
解决问题:
^按位(二进制)异或
异或:相同为0,相异为1
值 |
二进制 |
a=3 |
011 |
b=5 |
101 |
a=a^b |
a:110 b:101 |
b=a^b |
b:011 a:110 |
a=a^b |
a:101 b:011 |
完善解法:
补充:
进入企业:要学会使用建立临时变量的方法,可提高代码的可读性和执行效率
异或操作:可读性差 执行效率低于其他方法