第k位是1是0 x>>k&1 最后一位1(lowerbit) return x&-x; 二进制中1的个数 #include<iostream> using namespace std; int lowerbit(int x) { return x&-x; } int main() { int x; cin>>x; int ans=0; while(x) { x-=lowerbit(x); ans++; } cout<<ans<<endl; return 0; }