[LeetCode]: 191:Number of 1 Bits
2015-09-12 16:39
435 查看
题目:
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
分析:
直接用"除二取余"的方法来获取二进制的值
代码如下:(C#)
同样的思路用Java提交会报错,主要原因如下:
- 输入值n可能为负数(但应视其为无符号整数,但Java中实际上是没有无符号整数的)
所以采用:无符号右移操作,可以忽略符号位。
代码如下(Java):
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.
分析:
直接用"除二取余"的方法来获取二进制的值
代码如下:(C#)
public class Solution { public int HammingWeight(uint n) { int intResult = 0; uint intTemp = n; if(n<=1){ return (int)n; } while(intTemp > 0){ if(intTemp%2 ==1){ intResult++; } intTemp = intTemp/2; } return intResult; } }
同样的思路用Java提交会报错,主要原因如下:
- 输入值n可能为负数(但应视其为无符号整数,但Java中实际上是没有无符号整数的)
所以采用:无符号右移操作,可以忽略符号位。
代码如下(Java):
public class Solution { public int hammingWeight(int n) { int ans = 0; while (n != 0) { ans += n & 1; n >>>= 1; } return ans; } }
相关文章推荐
- c++11——std::function和bind绑定器
- 常见开发工具设置
- Java AES256加密解密实现
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- 读取未挂载的设备上的文件系统类型:char * fstype(char*device)
- 图片轮播效果,实现思想!
- USACO 1.3 Calf Flac (枚举)
- mongodb学习一 关于 下载 安装 以及增删改查 还有一些简单的命令
- android中修改actionbar的背景颜色和字体颜色等
- html table td 中 使用相对定位(relative)和绝对定位(absolute)的div
- 数据结构
- rmvb格式简单解析
- Intent深入解剖
- 趣味C语言(1)---绘制余弦曲线
- 柳传志告诫创业者:不要太狂妄
- 导弹拦截(最长单调子序列二分优化)(Dilworth偏序对定理)
- MFC树控件用法总结
- 打赏作者
- jeecms二次开发必备doc
- 喷水装置问题(一)