博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【刷算法】二进制中1的个数
阅读量:6618 次
发布时间:2019-06-25

本文共 365 字,大约阅读时间需要 1 分钟。

题目描述

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

代码实现

function NumberOf1(n){    var count = 0;    while(n !== 0){        count++;        n = n & (n-1);    }        return count;}复制代码

分析

例如n=13来说,二进制表示为1101,那么:

  1. n & (n-1) ——> 1101&1100 ——> 1100,count=1
  2. n & (n-1) ——> 1100&1011 ——> 1000,count=2
  3. n & (n-1) ——> 1000&0111 ——> 0000,count=3

可以看出来每次与操作都会消灭掉n最右边的1,所以最终可以得出n的二进制表示中有几个1.

转载地址:http://piupo.baihongyu.com/

你可能感兴趣的文章
【云图】如何设置微信里的全国实体店地图?
查看>>
db file async I/O submit 等待事件优化
查看>>
李开复谈未来工作:虽然会被AI取代,但谁说人类非得工作不可?
查看>>
Intercom的持续部署实践:一天部署100次,1次10分钟
查看>>
SpringBoot权限控制
查看>>
阿里云中间件技术 促进互联网高速发展
查看>>
智能时代悄然到来 物联网称王将引爆传感器产业
查看>>
Java中HashMap的原理分析
查看>>
React Native入门项目与解析
查看>>
云计算:大势所趋 你准备好了么?
查看>>
数据资产的运营商--天市大数据交易平台
查看>>
中小企业如何成功转型跨境电商
查看>>
java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**
查看>>
《ANTLR 4权威指南》——2.5 语法分析树监听器和访问器
查看>>
02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译...
查看>>
这些国货,在阿里平台上被美国剁手党抢疯了
查看>>
《Excel 职场手册:260招菜鸟变达人》一第 2 招 常用快捷键Windows与Mac对照
查看>>
《Greenplum企业应用实战》一第1章 Greenplum简介1.1 Greenplum的起源和发展历程
查看>>
开源世界已成围城:成本让企业蜂拥而来,也让企业退缩转投
查看>>
《Python编程快速上手——让繁琐工作自动化》——1.4 在变量中保存值
查看>>