我在浏览一个开源项目并碰到了这个python方法。我知道&和< <位运算符是如何工作的,但我不确定if else语句在这种情况下是如何工作的。我可以说int = 2,position是= 1,if语句的结果是2(10 base 2),但是如果语句compare 2与if语句的结果是什么呢?我将如何评估其他语句?if和bitwise&on同一行
def get_bit(int, position):
if int & (1 << position):
return '1'
else:
return '0'
这只是测试是否设置了特定位,例如, 'get_bit(4,2)=='1'',而'get_bit(4,1)=='0''尽管对变量名“int”使用python关键字是非常糟糕的做法。 – AChampion
注意'4 = 0100',注意'get_bit(7,2)=='1''为'7 = 0111'。 – AChampion