一个int类型的数,换成二进制后,提取最右侧的1所在位置 3 = 00000011 ==> 00000001 = 1 4 = 00000100 ==> 00000100 = 4
如图所示: N&(~N+1)就得到了所需要的数 ~N+1=-N所N&-N即为结果
public static int bit1counts(int N) { int rightOne = N & (-N); return rightOne ; }