给定32位无符号整数的反转位.
例如,给定输入43261596(以二进制表示
00000010100101000001111010011100),返回964176192(以二进制表示00111001011110000010100101000000).
这不起作用
def reverseBits(self, n):
return int(bin(n)[:1:-1], 2)
Run Code Online (Sandbox Code Playgroud)
你的问题是假设Python bin产生32位对齐输出.它没有; 它输出可能的最小位数.Python 3的int类型具有无限数量的位,即使在Python 2中,如果它溢出的边界(与C的限制无关)int也会自动提升.longintint
如果您希望它像特定宽度一样,最简单的方法是使用具有更多控件的格式化工具(这也将简化切片操作).
例如,通过格式化为固定的32个字符宽,用零填充,您将获得所需的结果:
>>> int('{:032b}'.format(43261596)[::-1], 2)
964176192
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
536 次 |
| 最近记录: |