【leetcode】【Numbers of 1 bits】java >>> &符号
2015-08-12 20:44
507 查看
1、java &:按位与,m & 1:如果结果为1,则m的二进制数的最后一位为1;如果结果为0,则m的二进制数的最后一位为0;m自动进行二进制转换,不需特意转换;
2、java >>>:无符号数的右移一位,即如果m=22,二进制数为00010110,m>>>1结果为00001011;右移一位不足的补0;如果m=-22;二进制数为11101001,m>>>1结果为01110100,移出去的位数被丢弃;
3、java中if的条件只能为true、false,不可谓0,1;即if(m & 1)不符合语法规则;
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int num = 0 , m = n;
while(m != 0){
num = num + (m & 1);
m= m>>>1;
}
return num;
}
}
详细讲解:
Java算法总结:输入一个整数,求该整数的二进制表示中有多少个1 - 不精通则死 - 博客频道 - CSDN.NET http://blog.csdn.net/litton_van/article/details/6656717
2、java >>>:无符号数的右移一位,即如果m=22,二进制数为00010110,m>>>1结果为00001011;右移一位不足的补0;如果m=-22;二进制数为11101001,m>>>1结果为01110100,移出去的位数被丢弃;
3、java中if的条件只能为true、false,不可谓0,1;即if(m & 1)不符合语法规则;
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int num = 0 , m = n;
while(m != 0){
num = num + (m & 1);
m= m>>>1;
}
return num;
}
}
详细讲解:
Java算法总结:输入一个整数,求该整数的二进制表示中有多少个1 - 不精通则死 - 博客频道 - CSDN.NET http://blog.csdn.net/litton_van/article/details/6656717
相关文章推荐
- Java日志框架——Logback的体系结构
- java异或运算交换两个数的陷阱
- [leetcode-130]Surrounded Regions(java)
- Java从键盘输入值
- Java ImageIcon 不能显示问题
- org.springframework.http.converter.HttpMessageNotWritableException:
- org.springframework.http.converter.HttpMessageNotWritableException:
- org.springframework.http.converter.HttpMessageNotWritableException:
- 浅析构造方法
- Spring声明式事务
- springMVC文件上传
- java连接MySQL数据库
- 第 2 页:Spring的设计理念
- 第 1 页:Spring的骨骼架构
- 如何手动生成heapdump和javacore文件
- Java心得12
- eclipse里配置maven
- MyEclipse2014安装svn插件的方式:
- java基础------数组
- Ant自定义任务开发