(java)Reverse Bits
2015-12-16 12:10
435 查看
Reverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).
思路:就是将一个数字转化为32位的二进制数,再将二进制数转置,再转化成新的10进制数。
代码如下(已通过leetcode)
public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int n) {
int ans=0;
String rans=Integer.toBinaryString(n);
while(rans.length()<32) rans="0"+rans;
//System.out.println(rans);
for(int i=0;i<rans.length();i++) {
if(rans.charAt(i)=='1') ans+=n2sum(i);
}
return ans;
}
public int n2sum(int n) {
int ans=1;
for(int i=0;i<n;i++)
ans=ans*2;
return ans;
}
}
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).
思路:就是将一个数字转化为32位的二进制数,再将二进制数转置,再转化成新的10进制数。
代码如下(已通过leetcode)
public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int n) {
int ans=0;
String rans=Integer.toBinaryString(n);
while(rans.length()<32) rans="0"+rans;
//System.out.println(rans);
for(int i=0;i<rans.length();i++) {
if(rans.charAt(i)=='1') ans+=n2sum(i);
}
return ans;
}
public int n2sum(int n) {
int ans=1;
for(int i=0;i<n;i++)
ans=ans*2;
return ans;
}
}
相关文章推荐
- Spring线程池由浅入深的3个示例
- Eclipse反编译插件JadEclipse 【转】
- Struts2 OGNL表达式的使用
- java基础知识
- (java)Merge Sorted Array
- Java中IO理解
- (java)Intersection of Two Linked Lists
- spring tool suite 的编码设置
- (java)Minimum Depth of Binary Tree
- jdk中的ThreadPoolExecutor
- java 8的新特性
- Android开发中Eclipse报错及对应处理方法总结
- java之Vertx_1_简介
- 利用spring,实现package下的类扫描
- java 自定义注解
- SpringMVC-Mybatis学习总结整理(上)
- java byte【】数组与文件读写
- 深度分析Java的枚举类型—-枚举的线程安全性及序列化问题
- Java开发中的23种设计模式详解(转)
- Spring MVC 框架搭建及详解