flowingfog

偶尔刷题

  博客园  :: 首页  :: 新随笔  :: 联系 ::  :: 管理
  50 随笔 :: 0 文章 :: 0 评论

分析

难度 易

来源

https://leetcode.com/problems/reverse-bits/submissions/

题目

Reverse bits of a given 32 bits unsigned integer.

Example:

Input: 43261596
Output: 964176192
Explanation: 43261596 represented in binary as 00000010100101000001111010011100, 
             return 964176192 represented in binary as 00111001011110000010100101000000.

Follow up:

If this function is called many times, how would you optimize it?

解答

 1 package LeetCode;
 2 
 3 import java.util.Stack;
 4 
 5 public class L190_ReverseBits {
 6     public int reverseBits(int n) {
 7         int result=0;
 8         for(int i=0;i<31;i++){
 9             result+=n&1;//取n最低位
10             n>>>=1;
11             result<<=1;//result=result<<1;左移,移动后原低位在前,高位在后
12         }
13         result+=n&1;//最后一个在反转后为个位,不右移;放在循环中则执行多次判断
14         return result;
15     }
16     public static void main(String[] args){
17         L190_ReverseBits l190=new L190_ReverseBits();
18         int n=43261596;
19         System.out.println(l190.reverseBits(n));
20     }
21 }

 

 

posted on 2018-11-25 20:07  flowingfog  阅读(77)  评论(0编辑  收藏