博客
关于我
位运算符 按位与 &——整数n的二进制数中1的个数
阅读量:278 次
发布时间:2019-03-01

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

整数n的二进制数中1的个数

编写一个函数,输入是一个整数,返回其二进制表达式中数字位数为 ‘1’ 的个数

代码如下:

int func(int n)//char ch{   	 int count = 0;         while(n > 0)          {               count++;              n&=(n-1);          }         return count;}

原理:n&(n-1) 按位与 每计算一次,低位减一

二进制8与自身减一进行按位与操作
如上图中二进制8与自身减一进行按位与操作
二进制3与自身减一进行按位与操作
如上图二进制3与自身减一进行按位与操作

-由此可的:

  • 8的二进制中有一位1,因此进行了一次该操作后变为0
  • 3的二进制中有两位1,进行两次该操作后变为0

则n&=(n-1)运算的次数可以表示用来表示n的二进制中1的位数

原题链接:

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

你可能感兴趣的文章
MySQL学习-SQL语句的分类与MySQL简单查询
查看>>
MySQL学习-子查询及limit分页
查看>>
MySQL学习-排序与分组函数
查看>>
MySQL学习-连接查询
查看>>
Mysql学习总结(10)——MySql触发器使用讲解
查看>>
Mysql学习总结(11)——MySql存储过程与函数
查看>>
Mysql学习总结(12)——21分钟Mysql入门教程
查看>>
Mysql学习总结(13)——使用JDBC处理MySQL大数据
查看>>
Mysql学习总结(14)——Mysql主从复制配置
查看>>
Mysql学习总结(15)——Mysql错误码大全
查看>>
Mysql学习总结(17)——MySQL数据库表设计优化
查看>>
Mysql学习总结(18)——Mysql主从架构的复制原理及配置详解
查看>>
Mysql学习总结(19)——Mysql无法创建外键的原因
查看>>
Mysql学习总结(20)——MySQL数据库优化的最佳实践
查看>>
Mysql学习总结(21)——MySQL数据库常见面试题
查看>>
Mysql学习总结(22)——Mysql数据库中制作千万级测试表
查看>>
Mysql学习总结(23)——MySQL统计函数和分组查询
查看>>
Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询
查看>>
Mysql学习总结(25)——MySQL外连接查询
查看>>
Mysql学习总结(26)——MySQL子查询
查看>>