首页 > 其他 > 详细

190. Reverse Bits

时间:2016-07-21 06:26:37      阅读:222      评论:0      收藏:0      [点我收藏+]

知识点

1. java中int和binary之间互相转换的自带函数

Integer.toBinaryString()//int转成binary

Integer.parseInt(strToBeParsed, base)//bianry转回int

2. int的最大值是231-1,用二进制表示就是有31个1,int有32位,第一位是表示符号,java中没有unsigned int,如果有的话是32位

这题用string的方法做是:

 1     public int reverseBits(int n) {
 2         StringBuilder sb = new StringBuilder();
 3         String binaryStr = Integer.toBinaryString(n);
 4         for(int i = 0; i < 32 - binaryStr.length(); i++) {
 5             sb.append(‘0‘);
 6         }
 7         sb.append(binaryStr);
 8         sb.reverse();
 9         long resLong = Long.parseLong(sb.toString(), 2);
10         return (int)resLong;
11     }

不用考虑溢出的情况,因为unsigned int用32位表示,无论如何也不会溢出,但是需要转成long是因为int本身只有31位

 

190. Reverse Bits

原文:http://www.cnblogs.com/warmland/p/5690333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!