您的位置:首页 > 编程语言 > Java开发

(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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: