加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Reverse Bits(数的位倒置)

发布时间:2020-12-13 22:30:12 所属栏目:百科 来源:网络整理
导读: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 t

Reverse bits of a given 32 bits unsigned integer.

For example,given input 43261596 (represented in binary as00000010100101000001111010011100),return 964176192 (represented in binary as00111001011110000010100101000000).

Follow up:
If this function is called many times,how would you optimize it?

Related problem:Reverse Integer

Method:

<span style="font-size:18px;">uint32_t reverseBits(uint32_t n) {
    int num[32];
    int i = 0;
    uint32_t temp = 0;
    for(; i < 32; i++)//记录到数组
    {
        if((1<<i)&n)
        {
            num[i] = 1;
        }
        else
        {
            num[i] = 0;
        }
    }
    for(i = 0; i<32; i++)//使用位偏移写入到临时数temp中
    {
        if(num[i])
        {
            temp = (1<<(31-i))|temp;
        }
    }
    return n = temp;
}</span>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读