按位运算的运算符
& : 按位与| : 按位或~ : 按位取反^ : 按位异或<<: 左移>>: 右移按位与 : 双方都为1则为1,否则为0应用 : 让某以为或某些位为0,某个数和0xFE做与 取一个数中的一段,某个数与0xFF按位或 : 双放有一个1则为1,都为0则为0应用 : 使得一位或几个位为1,某个数和0x01做或 把两个数拼起来,0x00FF | 0xFF00 -> 0xFFFF按位去反 : 把1位变0,把0位变1应用 : 想得到全部位为1的数 ~0 7的二进制是0111,x|7使得低3为为1,x&~7就使得低3为为0按位异或 : 双方相等为0,不相等为1应用 : x ^ y ^ y = x
移位运算
左移<<,最多可以移动多少位取决int有多大i<<<= n 等价于 x *= 2的n次方右移>>i>>j // i中所有的位向右移j个位置所有小于int的类型,移位以int方式来做,结果是int队医unsigned类型,左边填入0队医signed类型,左边填入原来的最高位(保持符号不变)x >>= 1 等价于x /= 2x >>= n 等价于x /= 2的n次方