文档章节

二进制中1的个数

cuibin1991
 cuibin1991
发布于 2016/08/16 16:50
字数 211
阅读 5
收藏 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
房山
程序员
求二进制中1的个数(编程之美2.1)

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

技术mix呢
2017/11/09
0
0
给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数

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

一贱书生
2016/11/19
3
0
C位运算笔记(根据网上内容整理)1

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

cjs520
06/28
0
0
C位运算笔记(根据网上内容整理)1

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

cjs520
06/28
0
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
4
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
38
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部