码迷,mamicode.com
首页 > 其他好文 > 详细

异或运算

时间:2016-01-23 17:59:32      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

对于任意向量α,有α^α=0,利用此属性可做无中介变量值交换:

void noTempSwap(int *x, int *y){
    *y=*x^*y;// *y = *x^*y
    *x=*x^*y;//*x = *x^*x^*y = *y
    *y=*x^*y;  //*y = *y^*x^*y = *x
}

注意:这种做法并无性能上的提升,仅仅是一种智力上的游戏。

trick1:数组元素对调

没有中间变量,对调数组中首尾元素顺序。

void reverse_Array(int *a, int count){

  int first, last;

  for (first=0,last=count-1;first<last;first++,last--;){

    noTempSwap(&a[first],&a[last]);
  }

}

  

异或运算

标签:

原文地址:http://www.cnblogs.com/wangjunyan/p/5153479.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!