位运算是将数转换成二进制进行操作,有&(与)、|(或)、^(异或)、~(取反);
取反运算符(~)是单目运算符,其余均为双目运算符;
位运算符的优先级从高到低,依次为~、&、^、|。
移位运算符是将整型或字符型数据作为二进位信息串作整体移动,有<<(←左移)、>>(→右移)。
常见操作:
1、求一整数二进制的第k位数字是几:
n >> k & 1;
2、lowbit(x),返回x的最后(右)一位1,例lowbit(1010111000)→1000:
lowbit(n) = n & -n;