标签:
二进制转换和字符串逆序。要考虑int的范围,测试数据是有溢出的。Math.pow是有精度损失的,最好写成整数的。
public class ReverseBits { public static int reverseBits(int n) { StringBuilder sb = new StringBuilder(Integer.toBinaryString(n)); StringBuilder s = new StringBuilder(sb.reverse()); if(s.length()!=32) { while(s.length() != 32) { s.append("0"); } } //System.out.println(s); int ans = 0; for(int i=s.length()-1; i>=0; i--) { if(s.charAt(i) == ‘1‘) { //System.out.println(s.length()-1-i); ans += pow(2, s.length()-1-i); } } return ans; } public static int pow(int n, int m) { int ans = 1; for(int i=0; i<m; i++) { ans *= n; } ans = Math.abs(ans); return ans; }
标签:
原文地址:http://www.cnblogs.com/wxisme/p/4382499.html