C/C++中部分位运算符的巧用

2012-11-28 12:57:57 · 作者: · 浏览: 277

    #include<iostream>

    using std::cout;

    using std::cin;

    using std::endl;

    int main()

    {

    //利用<<做2^6

    int m=2<<5;

    cout<<“2^6=”<<m<<endl;

    //利用&运算符判断数的奇偶性

    if(m&1)

    cout<<m<<“是奇数”<<endl;

    else

    cout<<m<<“是偶数”<<endl;

    //判断一个数mod2^n次的值,依旧利用位运算符

    int n=645&7; //m&(2^n-1)

    cout<<“645mod8=”<<n<<endl;

    //用异或求不同数

    n=1^1^5^7^5;

    cout<<“1^1^5^7^5=”<<n<<endl;

    //两个数的原地交换

    //利用异或法实现

    int a=7,b=5;a=a^b;b=a^b;a=a^b;cout<<a<<“ ”<<b<<endl;

    //利用加减法实现

    a=7,b=5;a=a+b;b=a-b;a=a-b;cout<<a<<“ ”<<b<<endl;

    return 0;

    }