现在的位置: 首页 > 综合 > 正文

C、C++易错知识点杂记(2)

2013年02月15日 ⁄ 综合 ⁄ 共 186字 ⁄ 字号 评论关闭

有两个int型变量a和b,不用“if”,“swith”,“?:”或其它判断语句找出a,b中较大的。

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

不用中间变量,交换int型变量a和b的值

  • 方案一
a = a + b;
b = a - b;
a = a - b;
  • 方案二
a = a ^ b;
b = a ^ b;
a = a ^ b;

注:异或运算符特性:

  1. 交换律:a ^ b = b ^ a;
  2. 结合律:a ^ b ^ c = a ^ (b ^ c);
  3. a ^ a = 0;
  4. a ^ 0 = a;

抱歉!评论已关闭.