Swap the values of two integer

Method one, use a temp variable

int a = 10;
int b = 11;
int temp = a;
a = b;
b = temp;

Method two, arithmetic

int a = 10;
int b = 11;
a = a + b; 
b = a - b;
a = a - b; // now b = a, which means a = a + b - a

The problem of this method is that it might overflow when a and b are very large. In other words, a + b is bigger than the range of int.

Method three, bit manipulation

int a = 10;
int b = 11;
a = a ^ b; 
b = a ^ b; // Now, b = 10 ^ 11 ^ 11 = 10, coz 11 ^ 11 = 0, 10 ^ 0 = 10
a = a ^ b;

There is no overflow problem here. Moreover, we don't need a temp variable. Of course, the first method, it is much more straight forward and much easier to maintain.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容