#include<stdio.h>intstatistics1(unsignedint num){
int count =0;while(num){
if(num %2==1){
count++;}
num /=2;}return count;}intstatistics2(int num){
int count =0;for(int i =0; i <32; i++){
if(((num >> i)&1)==1)
count++;}return count;}intstatistics3(int num)//效率最高的方法{
int count =0;while(num){
//例如:13
num = num &(num -1);//1101&1100==1100//1100&1011==1000//1000&0111==0000//每进行一次按位与操作 num二进制就少一位1.
count++;}return count;}intmain(){
int num =-1;int b =statistics1(num);int c =statistics2(num);int d =statistics3(num);printf("%d %d %d", b, c, d);//32 32 32}