day02-002-十分重要之位运算

位运算

int a = 0011;
int b = 1100;

a&b:与

  • 比较二进制位上的每个对应的数,两个数都是1,则为1,其他都为0

    a&b=0000;
    

a|b:或

  • 比较二进制位上的每个对应的数,两个数都是0,则为0,其他都是1

    a|b=1111;
    

a^b:亦或:

  • 比较二进制位上的每个对应的数,两个数相同为0,不相同则为1

    a^b=1111;
    

~b:取反

  • 0变成1,1变成0。

    ~b=0011;
    

<<

  • 左移符号

    • 好处?

      效率高,一般用于算法当中

      左一移位相当于原数*2

    //在java中,怎样计算2*8是最快的?
    00000010      2
    00010000      16
    2<<3 = 16;
    用移位运算最快
    

>>

  • 右移符号

    跟左移符的效果是一样的,右移一位相当于原数/2

posted @ 2021-07-01 14:50  小码农ya  阅读(52)  评论(0)    收藏  举报