python中反转_在python中反转位

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

例如,给定输入43261596(以二进制表示为

00000010100101000001111010011100),返回964176192(代表in

二进制为00111001011110000010100101000000).

这不起作用

def reverseBits(self, n):

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

解决方法:

你的问题是假设Python的bin产生一个32位对齐的输出.它没有;它输出可能的最小位数. Python 3的int类型具有无限数量的位,即使在Python 2中,如果int溢出int的边界(与C的int的限制无关),int也会自动提升为long.

如果您希望它像特定宽度一样,最简单的方法是使用具有更多控件的格式化工具(这也将简化切片操作).

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

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

964176192

标签:python

来源: https://codeday.me/bug/20190724/1521633.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值