我有一个小代码,它将整数转换为10位二进制并将其形成为整数:
a = 2251
binary = bin(int(a))[2:].zfill(15)
print binary
它会将结果表示为:
100011001011
之后我想删除100011001011
中的最后四位数字并将零写成零,这意味着我的最终答案应该是:
1000.11亿
请建议是否有任何好的想法...
答案 0 :(得分:5)
您可以使用一些简单的bit shifting:
执行此操作>>> a = 2251
>>> a = (a >> 4) << 4 # <--
>>> print format(a, 'b')
100011000000
为了演示正在发生的事情,假设a
具有二进制表示1111 1111
:
a == 11111111 a >> 4 == 00001111 (a >> 4) << 4 == 11110000
答案 1 :(得分:3)
您可以使用简单的按位操作:
>>> a = 2251
>>> a = a & ~0b1111
>>> print format(a, 'b')
100011000000