文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>交换两个值,不用临时变量

交换两个值,不用临时变量

时间:2010-10-23  来源:juruqiang

/*
 * 不用临时变量,交换两个变量的值。
 * ---------------
 * 使用异或位运算符:^
 * ---------------
 */
#include <stdio.h>

void main()
{
//    char a = 4;
//    char b = 35;
    int a = 4;
    int b = 35;
    printf("Before change:\n");
    printf("a = %d,\tb = %d\n", a, b);

    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    printf("After change:\n");
    printf("a = %d,\tb = %d\n", a, b);
}

关于'^'
(1)使特定的位翻转:即将特定的位与'1'相异或。
      0110 0011
  (^) 0000 1111
-----------------
      0110 1100
前四位不变,后四位翻转。

(2)保留原值,与0相异或
      0000 0110
  (^) 0000 0000
------------------
      0000 0110

(3)变量自身相异或,为0。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载