zoukankan      html  css  js  c++  java
  • 190 Reverse Bits 颠倒二进制位

    颠倒给定的32位无符号整数的二进制位。
    例如,给定输入 43261596(二进制表示为 00000010100101000001111010011100 ),返回 964176192(二进制表示为 00111001011110000010100101000000)。
    问题进阶:
    如果多次调用这个函数,你将如何优化它?

    详见:https://leetcode.com/problems/reverse-bits/description/

    Java实现:只需要把要翻转的数从右向左一位位的取出来,如果取出来的是1,将结果res左移一位并且加上1;如果取出来的是0,将结果res左移一位,然后将n右移一位即可

    public class Solution {
        // you need treat n as an unsigned value
        public int reverseBits(int n) {
            int res=0;
            for(int i=0;i<32;++i){
                if((n&1)==1){
                    res=(res<<1)+1;
                }else{
                    res=res<<1;
                }
                n=n>>1;
            }
            return res;
        }
    }
    

    参考:https://www.cnblogs.com/grandyang/p/4321355.html

  • 相关阅读:
    3-1
    3-2
    习题二 8
    习题二 3
    习题二 5
    习题二 4
    习题二 6
    实验三-2未完成
    实验三
    心得
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8745334.html
Copyright © 2011-2022 走看看