题目:输入一个整数n,求n的2进制表示中1的个数
分析可得:n&(n-1)的操作是将n的2进制表示中最右边的1变成0;
所以能得到对应的代码:
int numOf1(int n){ int count=0; while(n) { count++; n=n&(n-1); } return count;}
同理判断n是不是2的整数次幂
return !(n&(n-1));
本文共 280 字,大约阅读时间需要 1 分钟。
题目:输入一个整数n,求n的2进制表示中1的个数
分析可得:n&(n-1)的操作是将n的2进制表示中最右边的1变成0;
所以能得到对应的代码:
int numOf1(int n){ int count=0; while(n) { count++; n=n&(n-1); } return count;}
同理判断n是不是2的整数次幂
return !(n&(n-1));
转载于:https://www.cnblogs.com/zjhnl/archive/2012/10/01/2709931.html