• 【LeetCode】190. Reverse Bits


    题目:

    Reverse bits of a given 32 bits unsigned integer.

    For example, given input 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?

    提示:

    这道题比较简单,考的就是按位操作,可以借助于STL的bitset,也可以直接通过位运算完成题目的要求。

    代码:

    使用bitset:

    class Solution {
    public:
        uint32_t reverseBits(uint32_t n) {
            bitset<32> bits(n);
            int i = 0, j = 31, tmp;
            for (; i < j; ++i, --j) {
                tmp = bits[i];
                bits[i] = bits[j];
                bits[j] = tmp;
            }
            unsigned long l = bits.to_ulong();
            return (uint32_t)l;
        }
    };

    直接按位操作:

    class Solution {
    public:
        uint32_t reverseBits(uint32_t n) {
            uint32_t m = 0;
            for (int i = 0; i < 32 ; ++i, n = n >> 1)
                m = (m << 1) + (n & 1);
            return m;
        }
    }; 
  • 相关阅读:
    sql递归
    Sql Server随机抽取数据效率优化
    sql 左位补齐
    sql语句读取xml
    sql存储过程返回值
    sql 高效随机获取大表数据
    删除临时表
    sql完整事务
    加载静态文件,父模板的继承和扩展
    开始Flask项目
  • 原文地址:https://www.cnblogs.com/jdneo/p/4797197.html
Copyright © 2020-2023  润新知