gpt4 book ai didi

python - python中的反转位

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:06 25 4
gpt4 key购买 nike

给定 32 位无符号整数的反转位。

例如,给定输入 43261596(以二进制表示为00000010100101000001111010011100),返回964176192(表示为二进制为 00111001011110000010100101000000)。

这行不通

def reverseBits(self, n):
return int(bin(n)[:1:-1], 2)

最佳答案

您的问题是假设 Python 的 bin 生成 32 位对齐的输出。它没有;它输出尽可能少的位数。 Python 3 的 int 类型的位数是无限的,即使在 Python 2 中,如果 int 溢出边界,它也会自动提升为 long int(这与 C 的 int 的限制无关)。

如果你想让它表现得像一个特定的宽度,最简单的方法是使用具有更多控制的格式化工具(这也会简化你的切片操作)。

例如,通过将格式设置为固定的 32 个字符宽,并用零填充,您可以获得所需的结果:

>>> int('{:032b}'.format(43261596)[::-1], 2)
964176192

关于python - python中的反转位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49949017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com