文档章节

二进制中1的个数

cuibin1991
 cuibin1991
发布于 2016/08/16 16:50
字数 211
阅读 5
收藏 0
点赞 0
评论 0

第一种解法:先判断最右边是不是1,接着把输入的整数右移一位,原来处于倒数第二位的数被移到最右边,再判断是不是1。每次移动一位,直到这个整数为0为止。如果输入的为负数时,将陷入死循环。

第二种解法:将输入的数n与1做与运算,判断最后一位是否为1,接着把1左移,再和n进行与运算。但是这种运算会循环32次。

第三种解法:把输入的整数n减去1,再和原来的整数做与运算,会把最右边的1变成0,那么整数二进制有多少个1就进行多少次与运算。

具体实现代码:http://www.oschina.net/code/snippet_1051716_58675

© 著作权归作者所有

共有 人打赏支持
cuibin1991
粉丝 2
博文 15
码字总数 2682
作品 0
房山
程序员
n&(n-1)的妙用

n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000可以看到原本最低位为1的那位变为0。弄明白了n&(n-1)的作...

吟啸_徐行 ⋅ 2014/02/14 ⋅ 0

求二进制中1的个数(编程之美2.1)

行文脉络 解法一——除法 解法二——移位 解法三——高效移位 解法四——查表 扩展问题——异或后转化为该问题 对于一个字节(8bit)的变量,求其二进制“1”的个数。例如6(二进制0000 0110...

技术mix呢 ⋅ 2017/11/09 ⋅ 0

给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数

/** * 功能:给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数。 * (一个略大一个略小。) / 三种方法: 方法一:蛮力法 方法二:位操作法 [java] view plain co...

一贱书生 ⋅ 2016/11/19 ⋅ 0

JAVA中常用的二进制位操作

一,计算某个正数的二进制表示法中 1 的个数 1 //求解正数的二进制表示法中的 1 的位数2 private static int countBit(int num){3 int count = 0;4 for(; num > 0; count++)5 {6 num &= (nu...

一贱书生 ⋅ 2016/11/19 ⋅ 0

C位运算笔记(根据网上内容整理)1

什么是位运算? 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。由于位运算直接对内存数据进行操作,不需要转成十进制,...

cjs520 ⋅ 2017/05/28 ⋅ 0

C位运算笔记(根据网上内容整理)1

什么是位运算? 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。由于位运算直接对内存数据进行操作,不需要转成十进制,...

cjs520 ⋅ 2017/05/27 ⋅ 0

剑指Offer学习总结-二进制中1的个数

剑指Offer学习总结-二进制中1的个数 本系列为剑指Offer学习总结,主要是代码案例的分析和实现: 书籍链接:http://product.dangdang.com/24242724.html 原作者博客:http://zhedahht.blog.16...

wwlcsdn000 ⋅ 01/17 ⋅ 0

面试算法知识梳理(14) - 数字算法

面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 面试算法知识梳理(2) - 字符串算法第一部分 面试算法知识梳理(3) - 字符串算法第二部分 面试算法知识梳理(4) - 数组第一部分 面试...

泽毛 ⋅ 2017/12/28 ⋅ 0

Java 基础(2)

1.变量与常量 2.进制 十进制=>二进制 除以2并取余数,最后从后往前推 二进制=>十进制 从右往左,乘以2的次幂 二进制转十进制规律换算: 第一排是2的次幂,第二排是二进制,将第一排和第二排相对...

Chason-洪 ⋅ 2017/11/30 ⋅ 0

算法-求二进制数中1的个数

算法-求二进制数中1的个数问题描述 任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4 这也是一道比较经典的题目了,相信不少人...

Airship ⋅ 2016/08/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部