前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Q190 Reverse Bits

Q190 Reverse Bits

作者头像
echobingo
发布2018-04-25 16:54:06
6040
发布2018-04-25 16:54:06
举报

Reverse bits of a given 32 bits unsigned integer.

For example:
代码语言:javascript
复制
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?

Related problem: Reverse Integer

解题思路:

参考题目: Q7 Reverse Integer

此题是将整数对应的32位二进制数反转,然后再将反转后的二进制数转化为整数。

  • 以 n = 43261596 为例:
  1. 先用 bin(n) 将 n 转化为二进制数(str):'0b10100101000001111010011100';
  2. 再用 [:1:-1] 将str反转,注意去除 '0b' 两个字符: '00111001011110000010100101';
  3. 再用左对齐函数 ljust(32, '0'),在后面补 '0',达到 32位的要求:'00111001011110000010100101000000';
  4. 最后使用 int(str, base=2) 函数将指定进制的数转化为十进制数:964176192(也可以使用 eval('0b' + str)将二进制数转化为十进制数)。
Python实现:
代码语言:javascript
复制
class Solution:
    # @param n, an integer
    # @return an integer
    def reverseBits(self, n):
        return int(bin(n)[:1:-1].ljust(32, '0'), base=2)  
        # 或者 return eval('0b' + bin(n)[:1:-1].ljust(32, '0'))

a = 43261596
b = Solution()
print(b.reverseBits(a))  # 964176192
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.02.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • For example:
  • Follow up:
  • 解题思路:
  • Python实现:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档