LeetCode Number of 1 Bits
来源:互联网 发布:白夜水彩淘宝 编辑:程序博客网 时间:2024/06/04 19:12
题目:
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的个数。要注意的是:这个数是无符号的数,而且要考虑32位。一开始露珠用常规的方法,就是将这个十进制数去不断除以2,然后得到它的二进制表示方式,然后就是去计算1的个数。但是这种方式会出现错误,就是当32位数全是1的时候,就会报错。在网上找了相关的方法和《编程之美》的那本书上有相关的介绍,发现有一种很简单的方式,也就是用java的&运算符,这个是针对二进制而言,非常重要的按位计算,然后得到相关的结果。因为如果采用将n & (n - 1)的方式后,那么就会出现每做一次这种运算,会将从右到左的第一个1的那一位变成0,其他高位不变,如果做位运算后得到的那个数大于1,那么就将1的个数加1.知道运算得到的结果为0.
public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int num = 0;while(n != 0){num ++;n &= (n - 1);}return num; }}这道题目还是很有锻炼意义的,就是可以让我明白一般的按位运算符的作用。
0 0
- leetcode:bits:Number of 1 Bits(191)
- LeetCode:Number of 1 Bits
- LeetCode-Number of 1 Bits
- leetcode: Number of 1 Bits
- LeetCode Number of 1 Bits
- Leetcode: Number of 1 Bits
- Leetcode--Number of 1 Bits
- [LeetCode] Number of 1 Bits
- [leetcode]Number of 1 Bits
- Leetcode-Number of 1 Bits
- LeetCode Number of 1 Bits
- LeetCode-Number of 1 Bits
- [Leetcode] Number of 1 Bits
- [Leetcode]Number of 1 Bits
- leetcode--Number of 1 Bits
- leetcode:Number of 1 Bits
- 【leetcode】Number of 1 Bits
- Number of 1 Bits - LeetCode
- UIDatePicker的用法
- JavaScript权威指南_163_第17章_事件处理_17.2-注册事件处理程序-设置HTML标签属性为事件处理程序
- ios取消屏幕关闭
- URAL 1205 By the Underground or by Foot (建图 + Dijkstra + 堆优化)
- Golang的安装
- LeetCode Number of 1 Bits
- 使用CryptoAPI获取证书扩展属性之四:“CRL分发点”和“颁发机构信息访问”
- CentOS7升级内核到3.12.48
- VS2008基于对话框的MFC上位机串口通信(C++实现)简单例程
- 用xmanager登陆Linux图形界面
- Advanced English Writing
- 状态机思路在程序设计中的应用
- Java深入---百万数据提取最大的前一百个数据
- dos命令配置jdk环境