分析

难度 易

来源

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 }

 

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!