zoukankan      html  css  js  c++  java
  • & | ^ ~ >> <<

    &:按位与运算符,两位同时为“1”,结果才为“1”,否则为0
    用途:
    1.清零
    2.取一个数中指定位

    |:按位或运算符,参加运算的两个对象只要有一个为1,其值为1。
    1.常用来对一个数据的某些位置1

    ^:异或运算符,参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0
    1.使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。
    2.与0相异或,保留原值

    ~:取反运算符,参加运算的一个数据,按二进制位进行“取反”运算。
    1.使一个数的最低位为零,可以表示为:a&~1

    :右移
    <<:左移

    位运算符与赋值运算符结合,组成新的复合赋值运算符,它们是:
    &= 例:a &=b 相当于a=a& b
    |= 例:a |=b 相当于a=a |b

    = 例:a >>=b 相当于a=a>> b
    <<= 例:a<<=b 相当于a=a<< b
    ^= 例:a ^= b 相当于a=a^ b

    例:

    =右移
    int x=8;//1000
    x>>=2;//0010 x=2
    <<=左移 跟上面的一样 只不过向左位移 省略……
    &=位与
    int x=3;//0011
    x&=7;0011 &0111 结果 x=3 0011 在二进制上做与运算
    ^=异或
    int x=3;//0011
    x=7;00110111 结果 x=4 0100 比较两个位不相同的得1
    |=位或
    int x=1;//0001
    x|=6;//0001 | 0110 结果x=7 0111 位的或运算 两个位只要有一个是1就得1

  • 相关阅读:
    UVALive
    UVALive
    UVA
    UVALive
    BZOJ3597 SCOI2014方伯伯运椰子(分数规划+spfa)
    BZOJ3456 城市规划(多项式求逆)
    BZOJ4182 Shopping(点分治+树形dp)
    BZOJ4383 Pustynia(线段树+拓扑排序)
    BZOJ4445 SCOI2015小凸想跑步(半平面交)
    BZOJ5311 贞鱼(动态规划+wqs二分+决策单调性)
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/15528058.html
Copyright © 2011-2022 走看看