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

位运算

时间:2015-08-25 17:12:35      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

一移位运算符    

当左移的时候 是乘法*2^n

A << 1 ,A * 2^1   当左移的时候,末位为0填充,不断左移,A最后就会等于0

    当右移的时候,是除法/2^n

A >>1  ,A / 2^1   当右移的时候,若是负数则最高位为1,正数为0,所以负数右移,永远都不会为0,当所有数都为正电平,例如1111 1111,可以称为等于-1 


二与或运算符

与:&&  或:||


三去反异或运算符

1,异或: ^

1 ^ 0 = 1 

1 ^ 1 = 0

0 ^ 1 = 1

0 ^ 0 = 0

 int a = 10;
    int b = 20;
    
    if (a ^ b) {
        printf("dddd");
    }else {
        printf("bbbb");
    }
    
    a = a ^ b ;
    printf("a:%d",a);
    b = a ^ b ;
    printf("b:%d",b);
    a = a ^ b ;
    printf("a:%d",a);
    
    /*
     如果都是异,那就是
     a < b   c = a + b
     a > b   c = a - b
     
     */

2,取反: ~

    将0-->1,1-->0

位运算

标签:

原文地址:http://my.oschina.net/u/2346786/blog/496904

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