位运算-Number of 1 Bits(求一个十进制数字,它的二进制表示中有多少个 1(bit))
来源:互联网 发布:长庚医院网络挂号查询 编辑:程序博客网 时间:2024/06/06 08:26
问题描述:
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).
For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011
, so the function should return 3.
思考:
位运算就是两个二进制表示的数字在相应位置上同为1,那么结果在相应位置就是为,否则一致为0.那么n&(n-1)的作用就是把n的二进制表示中,最低位第一个为一的位变为0.
解题方法为:n = n&n-1
代码(java):
public class NumberOf1Bits {public static int hammingWeight(int n) { int count = 0;while(n != 0){n = n & n-1;count++;}return count; }/*public static void main(String[] args){System.out.println(hammingWeight(11));}*/}
0 0
- 位运算-Number of 1 Bits(求一个十进制数字,它的二进制表示中有多少个 1(bit))
- 191. Number of 1 Bits (计算一个整数的二进制表示中有多少个1)
- [LeetCode-191] Number of 1 Bits(判断一个整数中有多少个1)
- Number of 1 Bits (求32位二进制数中1的)
- leetcode_191. Number of 1 Bits 二进制表示中1的个数 ,位运算的应用,按位与&
- 一道面试题(求一个unsigned int 数的二进制表示中有多少个1?)
- 位操作:一个整数的二进制表示中 有多少个1?
- 求一个数的二进制表示中,有多少个1的问题
- 求一个unsigned int 数的二进制表示中有多少个1?
- 输入一个整数,求该整数的二进制表示中有多少个1
- 求一个unsigned int 数的二进制表示中有多少个1?
- C程序:二进制表示中有多少个"1″;二进制表示中有多少位是不同的
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?求N!的二进制表示中最低位1的位置。
- c语言位运算 求1个整数的二进制数有多少个1
- 求两个数的二进制中有多少个不同的bit位
- 给定一个整数N,求N!末尾有多少个0?N!的二进制表示中最低1的位置?
- Java算法总结:输入一个整数,求该整数的二进制表示中有多少个1
- Number of 1 Bits(二进制中1的个数)
- 冒泡排序
- CMakeFile命令之file
- String、StringBuffer、StringBuilder简单理解
- Understanding Play2 Iteratees for Normal Humans
- 怎么维护 SQLite
- 位运算-Number of 1 Bits(求一个十进制数字,它的二进制表示中有多少个 1(bit))
- POJ2777_Count Color
- Ajax的简单使用
- 1007. Maximum Subsequence Sum
- flask框架配置email问题汇总,包括163邮箱,qq邮箱,gmail等国内外邮箱
- Ant Colony Optimization
- 无向图的双连通性
- shader内置变量和函数
- windows下创建并使用静态链接库(.lib)