2019独角兽企业重金招聘Python工程师标准>>>

题目:整数的二进制表示中 1 的个数

要求:

输入一个整数,求该整数的二进制表达中有多少个 1。

例如输入 10,由于其二进制表示为 1010,有两个 1,因此输出 2。

分析:

解法一是普通处理方式,通过除二余二统计1的个数;

解法二与解法一类似,通过向右位移依次处理,每次与1按位与统计1的个数

解法三比较奇妙,每次将数字的最后一位处理成0,统计处理的次数,进而统计1的个数

代码实现(GCC编译通过):

#include "stdio.h"
#include "stdlib.h"int count1(int x);
int count2(int x);
int count3(int x);int main(void)
{int x;printf("输入一个数:\n");setbuf(stdin,NULL);scanf("%d",&x);printf("%d转二进制中1的个数是:",x);printf("\n解法一:%d",count1(x));printf("\n解法二:%d",count2(x));printf("\n解法三:%d",count3(x));printf("\n");return 0;
}//除二、余二依次统计每位
int count1(int x)
{int c=0;while(x){if(x%2==1)c++;x/=2;}return c;
}//向右移位,与1按位与统计每位
int count2(int x)
{int c=0;while(x){c+=x & 0x1;x>>=1;}return c;
}//每次将最后一个1处理成0,统计处理次数
int count3(int x)
{int c=0;while(x){x&=(x-1);c++;}return c;
}

参考资料:

《编程之美》        电子工业出版社

转载于:https://my.oschina.net/u/1470003/blog/265002

整数的二进制表示中 1 的个数相关推荐

  1. 算法--微软面试:整数的二进制表示中1的个数(Java实现)

    Q题目 整数的二进制表示中1的个数 输入一个整数,求该整数的二进制表达中有多少个1. 例如,输入10,由于其二进制表示为1010,有两个1,因此输出2. 这是一道很基本的考查位运算的面试题. Answ ...

  2. 输出一个整数的二进制表示中1的个数

    引言 在一个非零整数的二进制表示中,至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,若这个1的后面还有数字0,则这些数字0都会变成1,其余所有位不变. 举例如下:二进制数 ...

  3. 100题_22 整数的二进制表示中1的个数

    输入一个整数,求该整数的二进制表达中有多少个1.例如输入10,由于其二进制表示为1010,有两个1,因此输出2. 这个题非常简单,考的是位运算,我们每次向左移1位,判断最后一位是不是1就可以了.不多说 ...

  4. JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)

    题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 这个题目有个比较有意思并且被公认的解法,我就先贴答案吧: public class Solution {public int ...

  5. 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示

    转自http://my.oschina.net/ithaibo/blog/142655 题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 题目引自http://ac.jobdu ...

  6. 《剑指offer》-统计整数二进制表示中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 直观思路就是把二进制表示从右往左统计1的个数.直接想到移位操作来迭代处理.坑点在于负数的移位操作会填充1.有人贴出了逻辑移位 ...

  7. 二进制表示中 1 的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 需要注意的是: 右移运算符是将一个二进制数按指定移动的位数向右移动. 移动过程中,正数最高位补0,负数最高位补1,无符号数最 ...

  8. 题库练习5(句子逆序、字符串排序、int型二进制表示中1的个数、购物单)

    1. 句子逆序 将一个英文语句以单词为单位逆序排放.例如"I am a boy",逆序排放后为"boy a am I".所有单词之间用一个空格隔开,语句中除了英 ...

  9. 计算数值二进制表达式中1的个数

    --------------------------------------------- -- 时间:2019-03-21 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...

最新文章

  1. 【实用】Angular中如何实现类似Vuex的全局变量状态变化功能?
  2. CIO能够对我们的社会起到什么作用?
  3. 2021-02-07 接口测试工具-Postman使用详解
  4. c语言程序设计橙皮,橙皮_中药词典C_中医中药网
  5. shell 死循环if判断_Shell的条件判断
  6. python3 正则表达式 嵌套表格_在Python中将嵌套结构与正则表达式匹配
  7. python 杀死子进程_Python:当父异常终止时,如何杀死子进程?
  8. 中文字符频率统计python_python统计字符串出现最多的字母及其出现次数
  9. [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]
  10. mac版小达人点读包怎么安装_小达人点读笔扩容实战:16G变128G
  11. Raft -【go一致性算法】
  12. 端口状态 LISTENING、ESTABLISHED、TIME_WAIT、FIN_WAIT_2、CLOSE_WAIT、CLOSE_WAIT
  13. UI 自动化框架对比2
  14. 从宏杉合作伙伴大会看本土存储厂商的“逆袭”
  15. CorelDRAW2023全新版功能及下载安装教程
  16. 2008年12月12号,星期五晴。为人父,却不能尽父责,为人夫,却不能尽夫责。这种痛楚什么时候才能结束。
  17. matlab将z域变为s域,时域、S域、Z域转换
  18. 资源管理器清楚WPS网盘、百度网盘方法
  19. 文献检索、整理、归纳
  20. springmvc视图解析器详解

热门文章

  1. java io读取文件_java io读取文件操作代码实例
  2. dhcp服务器设置无线,无线网dhcp服务器设置
  3. 绿米开关如何重置_开个灯还带音效?跟我学简单改装智能开关,保证按上瘾!...
  4. 在a标签中添加点击事件
  5. sunplus 8202v iop源代码阅读笔记——2
  6. 加密芯片——RSA算法特点与应用注意事项
  7. VB为MSHFlexGrid添加表格编辑功能
  8. 最大学术出版商妥协!与挪威46所机构签协议,90%出版物免费阅读
  9. Mask R-CNN官方实现“又”来了!基于PyTorch,训练速度是原来2倍
  10. OpenAI新研究:通过非监督学习提升NLP任务表现