LeetCode 190 颠倒二进制位

题目

题目



分析:
(n&1)<<num:n左移num位,将n右边的数移到左边相应位置

n = n>>1:n右移1位,将已经反转到左边的那位数去掉,即“更新n最右边的那位数”

代码实现:

Java版

public class Solution {
    // you need treat n as an unsigned value
    public int reverseBits(int n) {
        int result = 0;
        int num = 31;
        while(num>=0){
            result += (n&1)<<num;
            n = n>>1;
            num--;
        }
        return result;
    }
}

结果:
结果


C版

uint32_t reverseBits(uint32_t n) {
    uint32_t result = 0;
    int num = 31;
    while(num>=0){
        result += (n&1)<<num;
        n = n>>1;
        num--;
    }
    return result;
}

结果:

结果

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页