Reverse bits of a given 32 bits unsigned integer.
Example:
Input: 43261596
Output: 964176192
Explanation: 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?
<思路>思路不是很难,只需要一行。主要是熟悉python中进制转换的方法。要注意的是十进制转二进制是0b开头,需要去除;二进制数值应该是是32位,需要用zfill()方法补全。
Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
| ↓ | 2进制 | 8进制 | 10进制 | 16进制 |
| 2进制 | - | bin(int(x, 8)) | bin(int(x, 10)) | bin(int(x, 16)) |
| 8进制 | oct(int(x, 2)) | - | oct(int(x, 10)) | oct(int(x, 16)) |
| 10进制 | int(x, 2) | int(x, 8) | - | int(x, 16) |
| 16进制 | hex(int(x, 2)) | hex(int(x, 8)) | hex(int(x, 10)) | - |
class Solution:
# @param n, an integer
# @return an integer
def reverseBits(self, n):
return int(bin(n)[2:].zfill(32)[::-1], 2)
32位无符号整数二进制反转

本文介绍了一种高效的Python方法来反转32位无符号整数的二进制表示,并通过具体例子展示了如何使用Python内置函数完成这一任务。此外,还讨论了在多次调用此功能时的优化思路。
858

被折叠的 条评论
为什么被折叠?



