问题背景 在刷算法题时,要求“二进制下位为1的数目”. Brian Kernighan算法 算法的核心思想如下:不断清除二进制数的最右侧的1,直到数字为0. 代码如下: int count = 0; while (num > 0) { num = num & (num - 1); count++; } 补充说明 在Java中已经有类似功能的实现,如 Integer.bitCount(); Long.bitCount()