剑指offer 15 二进制中1的个数
- 按位与运算“&”优先级比“==”低,所以与运算两侧要加括号
- 注意巧妙地n&(n-1)
public class Solution { public int NumberOf1(int n) { int count = 0; int flag = 1; while (flag != 0) { if ((n & flag) != 0) { count++; } flag = flag << 1; } return count; } }
public class Solution { public int NumberOf1(int n) { int count = 0; int flag = 1; while (flag != 0) { if ((n & flag) != 0) { count++; } flag = flag << 1; } return count; } }
相关推荐