n &= n - 1 用于判断 n 是否为 2 的次幂,如是,则 n 为零。
也就是说 n &= n - 1 可以将 n 的最后一位 1 给挑出来,因为减 1 时需要借位。而前面的几位 1 不会受影响。如果操作,直到最后一位 1 被挑出来,n 就为零了。这样,count 判断的就是所有的 1 的个数。
n &= n - 1 用于判断 n 是否为 2 的次幂,如是,则 n 为零。
也就是说 n &= n - 1 可以将 n 的最后一位 1 给挑出来,因为减 1 时需要借位。而前面的几位 1 不会受影响。如果操作,直到最后一位 1 被挑出来,n 就为零了。这样,count 判断的就是所有的 1 的个数。