在Python中移除整数最后一位并用零替代
我有一段小代码,它的作用是把一个整数转换成10位的二进制数,并把它当作整数来处理:
a = 2251
binary = bin(int(a))[2:].zfill(15)
print binary
运行后会得到这样的结果:
100011001011
接下来,我想把100011001011
最后的四位数字去掉,然后用零来替代,也就是说我想要的最终结果是:
100011000000
请问有没有什么好的建议...
2 个回答
3
你可以使用一个简单的位运算:
>>> a = 2251
>>> a = a & ~0b1111
>>> print format(a, 'b')
100011000000
7
你可以通过一些简单的位移操作来实现这个:
>>> a = 2251
>>> a = (a >> 4) << 4 # <--
>>> print format(a, 'b')
100011000000
为了让你更明白发生了什么,假设a
的二进制表示是1111 1111
:
a == 11111111 a >> 4 == 00001111 (a >> 4) << 4 == 11110000