比较
1、两个变量int a
和int b
,找出两个数中间比较大的。
方法一:
int max;
if (a > b)
{
max = a;
}
else
{
max = b;
}
方法二:
int max = (a > b) ? a : b;
方法三:
int max = ((a+b)+abs(a-b))/2
交换
2、两个变量int a
和int b
,交换这两个变量的值。
方法一:
int a = 10;
int b = 20;
int temp = a;
a = b;
b = temp;
这样做的
缺点
是消耗多内存,效率低。
方法二:
a = a + b;
b = a - b;
a = a - b;
这样做的
缺点
是如果a、b都是比较大的两个数,a = a+b时就会超界。
方法三:
a = a ^ b;
b = a ^ b;
a = a ^ b;
这样做的
优点
是:消耗内存少,且无须担心超界的问题。
这样做的原理是按位
异或
运算。按位异或运算符^
是双目运算符,其功能是参与运算的两数各对应的二进制位相异或,当对应的二进制位相异时,结果为1,当对应的二进制位相同时,结果为0,参与运算数仍以补码形式出现。
网友评论