标签:
1.假定x=500,求下面函数的返回值__6_ 。
1
2
3
4
5
6
7
8
9
10
|
int fun( int x) { int countx = 0; while (x) { countx++; x = x & (x – 1); } return countx; } |
解析:x&(x-1) 就是从右到左遇到的第一个1后面的(包括1)全都变成 0 ,更直观的:会导致x二进制中的1减少一个。本题答案:x二进制中有多少位1就会进行多少次与计算。
标签:
原文地址:http://www.cnblogs.com/wy1290939507/p/4727705.html