int calc(unsigned int n) { if(0==n) return 32; unsigned int ref=0xFFFF; unsigned int cnt=16; int sum =0; while(n>1) { if(n&ref) { n&=ref; } else { sum+=cnt; n>>=cnt; } cnt>>=1; ref>>=cnt; } return sum;
}
int calc(unsigned int n) { if(0==n) return 32; unsigned int ref=0xFFFF; unsigned int cnt=16; int sum =0; while(n>1) { if(n&ref) { n&=ref; } else { sum+=cnt; n>>=cnt; } cnt>>=1; ref>>=cnt; } return sum;
}