&按位与,双目运算符。
特点:二进制位上有0,那么该位就是0,都为1才为1
| 按位或
二进制位上有1,那该位就是1
^ 按位异或 该位和0异或,该位不变,该位和1异或,该位必变。
~ 按位取反单目。
要左移的数<<左移多少位,左移多少位相当于乘以2的多少次方
要右移的数<<右移多少位,右移多少位相当于除以2的多少次方
lowbit(x) x&(-x)
lowbit表达式的二进制意义:
x的二进制位只保留最低位的1和1右边的0,左边全为0后的结果。
如x=4:
0100&1100(注意负数是以补码方式保存,取反加1)==0100
一般意义:
等于2^p,p是x的二进制表示中最右边1的位数(从右往左数,从0开始计数)或者是最右边1的右边的0的个数。