精英盒子 -> 程序设计 -> 关于位操作的一点补充 [打印本页]

iol 2011-08-17 17:00

关于位操作的一点补充

交换两个变量而不用临时变量:
#include <iostream>
using namespace std;

inline void Swap(int *a, int *b)
{
    *a ^= *b;
    *b ^= *a;
    *a ^= *b;
}
int main()
{
    int a=6;
    int b=12;
    Swap(&a,&b);
    cout<< a <<" "<< b<<endl;
}
一些调试信息  可能有错误   .咳
6: (0110)2 ==a
12:(1100)2 ==b
a =0110^1100=1010(==10)
b=1100^1010=0110(==6)
a=1010^0110=1100(==12)
完成转换
好吧...继续

jybox 2011-08-17 18:04
  1. int a[1]={6};

这个有必要吗,和
  1. int a=6;
有区别吗


iol 2011-08-17 18:28
已修改....




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.037358 second(s),query:5 Gzip enabled