如何将 int 类型的 n
转换为二进制,并测试所得到的二进制数的每一位?
我在经过大量的搜索之后得到了以下信息:
def check_bit_positions(n, p1, p2):
print int(str(n),2)
然而,我收到了一个错误:invalid literal for int() with base 2
。请告诉我如何获得输入数字的二进制形式,并测试位于位置p1
和p2
的每个位。
编辑:
binary = '{0:b}'.format(n)
if list(binary)[p1] == list(binary)[p2]:
print "true"
else:
print "false"
上述代码现在可以正常工作,但是如何从列表末尾检查位置p1和p2呢?
l[-1]
是l
的最后一个元素,l[-2]
是倒数第二个元素,以此类推。 - arshajiibinary[-p1] == binary[-p2]
。在Python中,无需将字符串转换为列表,因为字符串是可迭代的。 - Ashwini Chaudharybinary[p1] == binary[p2]
。 - tdelaney