输出一个整数的二进制表示中1的个数
引言
在一个非零整数的二进制表示中,至少有一位是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的个数(Java实现)
Q题目 整数的二进制表示中1的个数 输入一个整数,求该整数的二进制表达中有多少个1. 例如,输入10,由于其二进制表示为1010,有两个1,因此输出2. 这是一道很基本的考查位运算的面试题. Answ ...
- 整数的二进制表示中 1 的个数
2019独角兽企业重金招聘Python工程师标准>>> 题目:整数的二进制表示中 1 的个数 要求: 输入一个整数,求该整数的二进制表达中有多少个 1. 例如输入 10,由于其二进制 ...
- 100题_22 整数的二进制表示中1的个数
输入一个整数,求该整数的二进制表达中有多少个1.例如输入10,由于其二进制表示为1010,有两个1,因此输出2. 这个题非常简单,考的是位运算,我们每次向左移1位,判断最后一位是不是1就可以了.不多说 ...
- 38. 统计一个整数的二进制表示中bit为1的个数
参考: https://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html 转载于:https://www.cnblogs.com/Gri ...
- -9 逆序输出一个整数的各位数字_逆序对个数(归并排序)
题目描述 输入 N 组数据,对每组数据输出逆序对个数. 输入 对于每组测试用例,第一行输入此组数据元素个数 x,接下来 x 行,每行一个数,表示元素.(1≤x≤500000)(1≤x≤500000) ...
- C++ - 求一个正整数的二进制表示中1的个数
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net /** Created by Chimomo*/#i ...
- 算法 - 求一个正整数的二进制表示中1的个数(C++)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! #inc ...
- 求 一个字符 在二进制表示中1的个数
代码如下,以后再做解释吧 #include <iostream> using namespace std;struct _byte // 这是重点 { unsigned a:1; unsi ...
- JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)
题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 这个题目有个比较有意思并且被公认的解法,我就先贴答案吧: public class Solution {public int ...
最新文章
- 批量注册、模拟登陆很难吗?一个Python爬虫案例告诉你答案!
- python数据处理实例-python数据分析实例(1)
- 一 如何检查oracle的归档日志及空间占用率,清除归档日志、Oracle归档日志使用情况查询、查看oracle数据库一周产生的归档日志
- win7锁定计算机要输入密码登陆,在win7中,怎么解决开机要输入用户密码
- 操作系统:166个Linux实用命令,太全了!
- group by用法多个字段_select的用法
- 【转】Windows编程之滚动条—滚动条消息
- arithmetic java_Java:Arithmetic
- css33d坐标系,CSS3-3D技术
- c语言中 dr指令应用,在计算机进行程序存储及控制中,pc.ir.ar和dr各起什么作用?能否相互代替?...
- 域中添加电脑提示重名
- c 转易语言源码,易语言代码转HTML 测试(源码方式)
- 看英文看的头疼的一次
- vue2百度地图修改比例尺位置
- nios2 c语言编程方法nios2系列教程,nios2 c语言编程方法
- 《C语言详解》_by_Hanly.学习笔记(1)
- Layui同一个表单中放置两个按钮,提交问题
- Debian设置合上笔记本盖子不休眠
- 银河麒麟操作系统开发_银河初级开发者指南
- 国网铅封电表红外通讯采集器是干什么用的?一分钟搞懂
热门文章
- word vba 转换html,快速合并文本到Word – 利用VBA代码
- 18年考转专本难吗数学英语计算机,2021年江苏专转本各科目难度有多大?
- labview信号时域分析编程笔记
- 抖音seo优化源代码搭建+抖音小程序私有化开源部署
- linux下Java生成图片字体中文乱码问题
- c语言求出伍位数,简介 模拟银行的钱数大写输出例如345叁肆伍方法/步骤 首先打开VC++ 文件》》》新建 创建一个C++空白文档 先声明头文件复制代码 代码...
- Python数据分析速成课程
- 字扩展,位扩展,和字位扩展_价格合理,可扩展的网站简介
- 视觉追踪热图帮Instagram被吐槽新l
- 关于树莓派,frambuf开启 pdf 的方法