位运算的基本操作

基本的运算符和作用:

    1:&按位与 &0置0

    2:|按位 或 |1置1

    3:^异或  *^1取反    *交换   a^=b;b^=a;a^=b;

    4: >> 移位运算符 *2或/2     a/(2^n)==a>>n

    5:~  取反

 

稍高级的应用:

//1:取第k(0,1,2,3,4,5...) 位
    int a=10;
    cout<<(a>>3&1)<<endl;
// 判断a的奇偶性  a%2  等价于  a&1   
    int a=10;
    a&1  最后一位是1 为奇  是0为偶
//2:将第k位  置0
    int a=10;
    a=~(1<<(k-1)) &a; //第k位是0其余位都是1&  
// 将第k位  置1
    int a=10;
    a=(1<<(k-1))|a; 
//将a循环左移k位
    int a=10;
    int k=1;
    a=(a<<k)|(a>>(sizeof(int)-k));
    //把最后一位置1 a|1
    //把最后一位置0 a|1-1
    //后面连续的1  (1<<k-1)

  

posted @ 2017-04-06 22:09  小螺号打豆豆  阅读(159)  评论(0编辑  收藏  举报