小结 1 .位运算是将每一位分别计算 2 .异或运算(^/XOR)可看作不进位加法 表达式结果0 ^ 001 ^ 101 ^ 010 ^ 11 3 .左移( << ):向后补0,左移k位相当于a*(2^k) 右移( >> ):把右移出去的部分去掉,相当于a/(2^k) 4 .常用操作 (1)求x对应二进制的位数: x >> k & 1 (2)lowbit(x) = x & -x,返回x的最后一位1以及后面的0 【注意】在c++中,-a <=> ~a + 1,二者相同