引言

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

举例如下:二进制数11110000,第四位上的1是整个数字中处于最右边的数字1,后面跟了4个0,在这个数字减去1之后,第四位成了0,后面所有的0都成了1,即11101111。

通过观察可得,减1操作使得从第四位的1开始,将后面所有的数字都进行了取反操作。如果将原数和减1之后的数字进行与运算,即11110000&11101111=11100000。也就是说,把整个数字减1之后再和原来的整数做与运算,就会把这个整数最右边的一个1变成0。每次操作都能够减少这个整数中的一个1,知道整数中没有数字1为止。

代码实现

public class Solution {public int NumberOf1(int n) {int count = 0;//计数变量while(n!=0){//循环条件为,该整数不为0n=n&(n-1);count++;//每进行一次与运算,就自增一次}return count;}
}

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

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

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

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

    2019独角兽企业重金招聘Python工程师标准>>> 题目:整数的二进制表示中 1 的个数 要求: 输入一个整数,求该整数的二进制表达中有多少个 1. 例如输入 10,由于其二进制 ...

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

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

  4. 38. 统计一个整数的二进制表示中bit为1的个数

    参考: https://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html 转载于:https://www.cnblogs.com/Gri ...

  5. -9 逆序输出一个整数的各位数字_逆序对个数(归并排序)

    题目描述 输入 N 组数据,对每组数据输出逆序对个数. 输入 对于每组测试用例,第一行输入此组数据元素个数 x,接下来 x 行,每行一个数,表示元素.(1≤x≤500000)(1≤x≤500000) ...

  6. C++ - 求一个正整数的二进制表示中1的个数

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net /** Created by Chimomo*/#i ...

  7. 算法 - 求一个正整数的二进制表示中1的个数(C++)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! #inc ...

  8. 求 一个字符 在二进制表示中1的个数

    代码如下,以后再做解释吧 #include <iostream> using namespace std;struct _byte // 这是重点 { unsigned a:1; unsi ...

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

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

最新文章

  1. 批量注册、模拟登陆很难吗?一个Python爬虫案例告诉你答案!
  2. python数据处理实例-python数据分析实例(1)
  3. 一 如何检查oracle的归档日志及空间占用率,清除归档日志、Oracle归档日志使用情况查询、查看oracle数据库一周产生的归档日志
  4. win7锁定计算机要输入密码登陆,在win7中,怎么解决开机要输入用户密码
  5. 操作系统:166个Linux实用命令,太全了!
  6. group by用法多个字段_select的用法
  7. 【转】Windows编程之滚动条—滚动条消息
  8. arithmetic java_Java:Arithmetic
  9. css33d坐标系,CSS3-3D技术
  10. c语言中 dr指令应用,在计算机进行程序存储及控制中,pc.ir.ar和dr各起什么作用?能否相互代替?...
  11. 域中添加电脑提示重名
  12. c 转易语言源码,易语言代码转HTML 测试(源码方式)
  13. 看英文看的头疼的一次
  14. vue2百度地图修改比例尺位置
  15. nios2 c语言编程方法nios2系列教程,nios2 c语言编程方法
  16. 《C语言详解》_by_Hanly.学习笔记(1)
  17. Layui同一个表单中放置两个按钮,提交问题
  18. Debian设置合上笔记本盖子不休眠
  19. 银河麒麟操作系统开发_银河初级开发者指南
  20. 国网铅封电表红外通讯采集器是干什么用的?一分钟搞懂

热门文章

  1. word vba 转换html,快速合并文本到Word – 利用VBA代码
  2. 18年考转专本难吗数学英语计算机,2021年江苏专转本各科目难度有多大?
  3. labview信号时域分析编程笔记
  4. 抖音seo优化源代码搭建+抖音小程序私有化开源部署
  5. linux下Java生成图片字体中文乱码问题
  6. c语言求出伍位数,简介 模拟银行的钱数大写输出例如345叁肆伍方法/步骤 首先打开VC++ 文件》》》新建 创建一个C++空白文档 先声明头文件复制代码 代码...
  7. Python数据分析速成课程
  8. 字扩展,位扩展,和字位扩展_价格合理,可扩展的网站简介
  9. 视觉追踪热图帮Instagram被吐槽新l
  10. 关于树莓派,frambuf开启 pdf 的方法