您的位置:首页 > 其它

a,b交换与比较

2016-02-20 14:53 405 查看
1.有两个变量a、b,不用判断语句,找出其中较大的数

int max = ((a + b) + abs(a - b)) / 2


2.将a,b交换,不用任何中间变量

方法一:加减法(可能会溢出)

a = a + b;
b = a - b;
a = a - b;

方法二:乘除法(可能溢出,b不为0)
a = a * b;
b = a / b;
a = a /b;

方法三:异或法
a = a ^ b;
b = a ^ b;
a = a ^ b;

异或满足结合律,(a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a
参考:异或的性质及运用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: