`
messi_18
  • 浏览: 96425 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

计算一个无符号整数的二进制表示中1的个数

 
阅读更多
计算一个无符号整数的二进制表示中1的个数,这个问题又被称作Hamming weight
Java中有支持的API:
Integer.bitCount
Long.bitCount
    public static int bitCount(int i) {
        // HD, Figure 5-2
	i = i - ((i >>> 1) & 0x55555555);
	i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
	i = (i + (i >>> 4)) & 0x0f0f0f0f;
	i = i + (i >>> 8);
	i = i + (i >>> 16);
	return i & 0x3f;
    }


http://stackoverflow.com/questions/1458314/number-of-1s-in-32-bit-number
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel
http://aggregate.ee.engr.uky.edu/MAGIC/#Population%20Count%20%28Ones%20Count%29
分享到:
评论

相关推荐

    判断32位无符号整数二进制中1的个数

    判断32位无符号整数二进制中1的个数,与大家分享下。不是原创

    78 – 统计二进制中1的个数

    将一个整数转换为二进制形式,统计二进制数中1的个数,如果是负数,按补码统计1的个数 def oneNumber(n): print(bin(n)) if n < 0: # 在python中,负数与0xFFFFFFFF按位与,实际上按照语法,负数在做与操作...

    经典面试题(1):统计整数中1的个数

    题目:给定一个无符号32位整数num,求num的二进制表示法中含1的个数。提供了8中实现方式。

    位1的个数1

    位 1 的个数编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。在这种情况下,输入和输

    香农编码的matlab语言实现

    从第一步就知道信源符号的个数n,于是构造一个nx4的零矩阵D,以便储存接下来运算的结果。把排好序的信源符号概率以列的形式赋给D的第一列。 再次,做编码的第二步,求信源符号概率的累加概率(方法见程序),用来...

    大学计算机基础.doc

    若在一个非零无符号二进制整数右边加两个零形成一个新的数,则新数值是原数值的()。 A。 4倍 B。 2倍 C、 1/4 D、 1/2 18、 16个二进制位可表示整数的范围是()。 A、 0~65535 B、 -32768~32767 C。 —...

    计算机基础试题-.doc

    11、用八进制表示两个字节的无符号整数,最多需要〔6位〕。 12、以下关于"1Mb/s〞准确的含义是〔1000kb/s〕。 13、做无符号二进制加法:〔10011001〕2+〔00101110〕2=〔11000111〕。 14、做无符号二进制减法:〔...

    【leetcode】位1的个数

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串 ...

    算法心得:高效算法的奥秘(原书第2版).[美]Henry S.Warren,Jr(带详细书签).pdf

    3.2 调整到上一个/下一个2的幂 57 3.2.1 向下舍入 58 3.2.2 向上舍入 59 3.3 判断取值范围是否跨越了2的幂边界 59 3.4 习题 61 第4章 算术边界 63 4.1 检测整数边界 63 4.2 通过加减法传播边界 65 4.3 通过...

    20年春北交《计算机组成原理(专)》在线作业一.docx

    存放一个二进制信息位的存储元 7.集中式总线控制中,______方式对电路故障最敏感。 A.链式查询; B.计数器定时查询; C.独立请求; D.总线式。 8.CPU响应中断的时间是______。 A.间址周期结束。 B.执行周期结束; C....

    leetcode下载-LeetCode-daily-plan20200508:力扣每日计划第一天2020\05\08

    leetcode下载 ...编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串 ...

    delphi 开发经验技巧宝典源码

    0209 如何把ListBox中的内容拖曳到另一个ListBox中 139 0210 把DBGrid中的数据赋给数组 139 0211 如何获取DataGrid单元格中的内容 140 0212 如何锁定文本框中的文本 141 0213 如何设置光标到文本框的末尾 ...

    modbus通信协议

    LRC域是一个包含一个8位二进制值的字节。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误。 LRC方法是将消息中的8Bit的...

    数据结构(C++)有关练习题

    内容及步骤: 1、 设有一个线性表(e0,e1,e2,e3,…,en-2,en-1)存放在一个一维数组A[arraySize]中的前n个数组元素位置。请编写一个函数将这个线性表原地逆置,即将数组的前n个原地址内容置换为(en-1,en-2,…,e3,...

    C语言程序设计标准教程

    x 以十六进制形式输出无符号整数(不输出前缀OX) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e 以指数形式输出单、双精度实数 g 以%f%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出...

    《你必须知道的495个C语言问题》

    中,如果不关心a[]的哪一个分量会被写入,这段代码就没有问题,i也的确会增加1,对吗? 38  3.11 人们总是说i=i++的行为是未定义的。可我刚刚在一个ANSI编译器上尝试过,其结果正如我所期望的。 38  3.12 我不...

    图像增强的实现

    说明:对于形式 H=fspecial(type) ,fspecial 函数产生一个由 type 指定的二维滤波器 H ,返回的 H 常与其它滤波器搭配使用。 4. 彩色增强的 Matlab 实现 4.1 imfilter函数 功能:真彩色增强 格式:B=imfilter(A,h)...

    MP3格式解析

    计算大小时要将0 去掉,得到一个28 位的二进制数,就是标签大小(不懂为什么要这样做),计算公式如 下: int ID3V2_Size; ID3V2_Size = (Size[0]&0x7F;)*0x200000 +(Size[1]&0x7F;)*0x4000 +(Size[2]&0x7F;)*0x80 +...

    你必须知道的495个C语言问题

    中,如果不关心a[]的哪一个分量会被写入,这段代码就没有问题,i也的确会增加1,对吗? 3.11 人们总是说i=i++的行为是未定义的。可我刚刚在一个ANSI编译器上尝试过,其结果正如我所期望的。 3.12 我不想学习那些...

Global site tag (gtag.js) - Google Analytics