重要性质:一个整数和它减去1的结果做位与,相当于把它最右边的1变成0
此性质可用于找二进制数1的个数。
类似问题1:一条语句判断一个数n是不是2的整数次方。
2的整数次方的二进制有且只有1个1,所以
n&(n-1)==0;
类似问题2:两个二进制数a,b,a要改变多少位才能变成b?
先求这两个数异或q(同0异1),q有几个1?