Java实例4 - 快速计算二进制数中1的个数(Fast Bit Counting)
来源:互联网 发布:游戏源码论坛 编辑:程序博客网 时间:2024/05/21 07:04
- /**
- * 快速计算二进制数中1的个数(Fast Bit Counting)
- * 该算法的思想如下:
- * 每次将该数与该数减一后的数值相与,从而将最右边的一位1消掉
- * 直到该数为0
- * 中间循环的次数即为其中1的个数
- * 例如给定"10100“,减一后为”10011",相与为"10000",这样就消掉最右边的1
- * Sparse Ones and Dense Ones were first described by Peter Wegner in
- * “A Technique for Counting Ones in a Binary Computer“,
- * Communications of the ACM, Volume 3 (1960) Number 5, page 322
- */
- package al;
- public class CountOnes {
- public static void main(String[] args) {
- int i = 7;
- CountOnes count = new CountOnes();
- System.out.println("There are " + count.getCount(i) + " ones in i");
- }
- /**
- * @author
- * @param i 待测数字
- * @return 二进制表示中1的个数
- */
- public int getCount(int i) {
- int n;
- for(n=0; i > 0; n++) {
- i &= (i - 1);
- }
- return n;
- }
- }
0 0
- Java实例4 - 快速计算二进制数中1的个数(Fast Bit Counting)
- Java实例4 - 快速计算二进制数中1的个数(Fast Bit Counting)
- 计算二进制数中1的个数的快速算法
- 计算二进制数中1的个数
- 计算二进制数中1的个数
- 计算二进制数中1的个数
- 计算二进制数中1的个数
- 计算二进制数中1的个数
- 一个计算二进制数中1的个数的快速算法
- 计算一个数的二进制数中1的个数
- 计算一个数的二进制中1的个数
- 计算一个数的二进制表示中1的个数
- 转载关于计算二进制数中1的个数
- 计算一个数二进制中1的个数
- C语言--计算二进制数中1的个数(&)
- 动态规划之计算二进制数中1的个数
- Counting Bits 计算二进制形式中的1的个数
- Bit Manipulation-计算一个整数中二进制中1的个数
- Cocos2d-x 3.0-触摸机制
- json开发的一个细节:服务端及客户端的json所用的jar包不同
- Skia深入分析6——skia中图像编解码代码概述
- Java实例3 - 三角数字
- Cocos2d-x 3.0-Vector&map&value
- Java实例4 - 快速计算二进制数中1的个数(Fast Bit Counting)
- c语言基础查漏补缺
- 重新认识 :转发与重定向 forward and Redirect
- Cocos2d-x 3.0-新的Label-Cocos2d-x官方文档
- Java实例5 - 考拉兹猜想 Collatz Conjecture
- Cocos2d-x 3.0-win7+vs2012+adt+ndk环境搭建
- Python 学习经历(二) :Ubuntu 上快速安装及配置 virtualenvwrapper 虚拟环境
- 二维数组的认识及其表示元素的两种方式
- 四边形不等式优化DP