交换两个数的值的若干方法
来源:互联网 发布:115签到软件 编辑:程序博客网 时间:2024/06/01 07:11
我们都知道交换两个数的值最传统的方法:
example:
给出两个整形:
int a =20 ;
int b=10;
int c=0 ;
c=a ;
a=b;
a=c ;
利用第三个变量我们可以很轻松的交换两个整形的值。
那如果我们不创建第三个变量交换两个数的值呢:
example:
int a =20 ;
int b=10;
a=a+b:
b=a-b:
a=a-b:
这种方法存在溢出问题:
也可以用乘除:
a=a*b:
a=a/b:
b=a/b;
这种方法存在溢出和限定b不等于0.
下面介绍一种方法:异或(^)
运算规则:
相异为1
相同为0
给定两个整形int:四个字节 32个比特位:
00000000 00000000 00000000 00001010 //10的二进制
00000000 00000000 00000000 00010100 //20的二进制
00000000 00000000 00000000 00011110 //a^b
00000000 00000000 00000000 00010100 //(a^b)^a
00000000 00000000 00000000 00001010 //(a^b)^b
代码测试:
int a = 20;
int b = 10;
a = a^b;
b = a^b;
a = a^b;
也可以用指针进行改变,方法还有很多就不一一列举了。
- 交换两个数的值的若干方法
- 交换两个数的方法
- 交换两个数的值
- 交换两个数的值
- 交换两个数的值
- 交换两个数的值
- 交换两个数的值
- 交换两个数的值
- 交换两个数的值
- 交换两个数的值
- 交换两个数的值
- 交换两个数的值
- 交换两个数的方法总结
- 交换两个数的三种方法
- 两个数交换的三种方法
- 用指针的方法交换两个数
- 交换两个数的三种方法
- 交换两个整型数的方法
- 腹有诗书气自华
- 14.管理表中的数据DML语句
- YDB进阶使用详解
- 部署maven管理的JavaWeb项目到Linux云服务器
- Java- HashTable
- 交换两个数的值的若干方法
- AIX相关(1)
- 零散的知识点
- Message、Handler、Message Queue、Looper之间的关系。
- HTML4,HTML5,XHTML 之间有什么区别?
- Android 如何直播RTMP流
- JZOJ4975. 区间
- java之sleep, wait, notify, notifyall
- 探索 unity thread