我了解每个操作员自己的工作,但我不知道他们如何交互以获得正确的结果。
def kill(n, k):
#Takes int n and replaces the bit k from right with 0. Returns the new number
return n & ~(1<<k-1)
我用nas 37 和kas 3 测试了这个程序。
def b(n,s=""):
print (str(format(n, 'b')) +" "+ s)
def kill(n, k):
b(n, "n ")
b(1<<k-1, "1<<k-1")
b(~(1<<k-1), "~(1<<k-1) ")
b( n & ~(1<<k-1)," n & ~(1<<k-1) ")
return n & ~(1<<k-1)
#TESTS
kill(37, 3)
我决定一步一步地完成它。我打印了两者的二进制表示,n但~(1<<k-1)在那之后我迷路了。~(1<<k-1)给了我-101,我不确定如何以二进制形式将其可视化。有人可以通过二进制文件的可视化逐步完成吗?