【最大值】
不用 if 、 ? : 、switch 或其它判读语句,找出a b中的最大者。
【代码】
int max = ((a + b) + abs(a - b))/2
【交换值】
【代码一】
a = a + b;
b = a - b;
a = a - b;当a b 过大时, a + b 会越界。
【代码二】
a = a ^ b;
b = a ^ b;
a = a ^ b;
本文介绍了一种不依赖if、?:或switch等判断语句来寻找两个整数中较大值的方法,并展示了两种利用位操作进行变量交换的技巧。
【最大值】
不用 if 、 ? : 、switch 或其它判读语句,找出a b中的最大者。
【代码】
int max = ((a + b) + abs(a - b))/2
【交换值】
【代码一】
a = a + b;
b = a - b;
a = a - b;当a b 过大时, a + b 会越界。
【代码二】
a = a ^ b;
b = a ^ b;
a = a ^ b;
6181

被折叠的 条评论
为什么被折叠?