在Python中移除整数最后一位并用零替代

2 投票
2 回答
2589 浏览
提问于 2025-04-18 08:46

我有一段小代码,它的作用是把一个整数转换成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

撰写回答