x&(x-1)有两个用途 统计二进制中1的个数判断一个数是否为2的n次方 统计二进制中1的个数 private int func(int x){ int count = 0; while(x!=0){ count++; x = x&(x-1); } return count; } 判断一个数是否为2的n次方 private int func(int x){ return (x&(x-1)) == 0?1:0; } 菜鸡笔记 大佬轻喷