频道栏目
首页 > 程序开发 > 软件开发 > C语言 > 正文
C语言二进制中1的个数(代码实例)
2018-07-02 16:57:52      个评论    来源:凯的博客  
收藏   我要投稿

二进制中1的个数

//第一种:短除法
int count_one(unsigned num)
{
 int count = 0;
 while (num != 0)
 {
  if (num % 2 == 1)
  {
count++;
  }
  num /= 2;
 }
 return count;
}
?
//第二种:移位按位与1法
int count_one(int num)
{
 int count = 0;
 int i = 0;
 for (i = 0; i < 32; i++)
 {
  count += (num >> i) & 1;
 }
 return count;
}
?
//第三种:num与num-1进行按位与
int count_one(int num)
{
 int count = 0;
 while (num != 0)
 {
  num = num & (num - 1);
  count++;
 }
 return count;
}
?
int main()
{
 int num = 0;
 int count = 0;
 printf("请输入一个数字>:");
 scanf("%d", &num);
 count = count_one(num);
 printf("1的个数为:%d\n", count);
 return 0;
}
点击复制链接 与好友分享!回本站首页
上一篇:分享一个C布局(代码)
下一篇:C语言学习讲解之枚举类型实例
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站