3.29每日一题

二进制颠倒用位运算

uint32_t reverseBits(uint32_t n) {
        uint32_t res = 0;
        for (int i = 0; i < 32; i ++ )
            res = (res << 1) + (n >> i & 1);//n >> i & 1可以得到n二进制的第i位
            //res左移一位后,最后是0嘛,然后加上n的第i位(倒序了)
        return res;
    }

 reverse函数注意语法,举个栗子

reverse(v.begin() + i, v.begin() + j)//颠倒的是下标i到j - 1

 over

posted @ 2021-03-29 20:05  acwarming  阅读(30)  评论(0编辑  收藏  举报