现在一共在网上找到了3种方法 第一种方法最常用,
直接添加一个中间变量
方法2: 使用加减法
这种方法比较容易理解,但是存在一定的问题(int 可能会存在溢出)
第三种方法是使用异或运算进行的
手工运算结果确实是满足需要。 但是具体的原理暂时解释不清。
第四种方法是 乘除法
以上是四种常规的方法。但是我觉得在单片机的底层代码里面可以有其他的解决方案
我的想法是利用单片机程序的C内嵌汇编代码将 a b 的值分别写入R0 R1 然后分别写回到b a
这种方法区别于计算机程序员的做法 利用了基本的寄存器
或者是
XCH AX,BX;
总之 在最底层操作上可以很节省资源
第五种方式未经验证