LeetCode - Reverse Bits
二进制转换和字符串逆序。要考虑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; }
作者:Pickle
声明:对于转载分享我是没有意见的,出于对博客园社区和作者的尊重一定要保留原文地址哈。
致读者:坚持写博客不容易,写高质量博客更难,我也在不断的学习和进步,希望和所有同路人一道用技术来改变生活。觉得有点用就点个赞哈。