其他分享
首页 > 其他分享> > 190. 颠倒二进制位(位运算)

190. 颠倒二进制位(位运算)

作者:互联网

190. 颠倒二进制位

颠倒给定的 32 位无符号整数的二进制位。

提示:

 

示例 1:

输入:n = 00000010100101000001111010011100
输出:964176192 (00111001011110000010100101000000)
解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
     因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。

示例 2:

输入:n = 11111111111111111111111111111101
输出:3221225471 (10111111111111111111111111111111)
解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
     因此返回 3221225471 其二进制表示形式为 10111111111111111111111111111111 。

 

提示:

 1 class Solution {
 2 public:
 3     /*
 4     * 1、依次将每一位取出(n & 1),左移到对称高位,即是反转低位到高位
 5     * 2、每次移出最低位
 6     */
 7     uint32_t reverseBits(uint32_t n) {
 8         int reverse = 0;
 9         for (int i = 0; i < 32 && n > 0; i++) {
10             reverse |= ((n & 1) << (31 - i));
11             n >>= 1;
12         }
13         return reverse;
14     }
15 };

 

标签:符号,二进制位,示例,190,整数,颠倒,二进制,输入
来源: https://www.cnblogs.com/MGFangel/p/16345729.html