假设我们有一个数字n和另一个值k。我们必须检查n中的第k位是置位(1)还是未置位。从右手侧考虑k的值。
因此,如果输入类似于n = 18 k = 2,则输出将被设置为18的二进制形式是10010,因此倒数第二个位是1(设置)。
为了解决这个问题,我们将遵循以下步骤-
temp:= n向右移动(k-1)次后
如果temp AND 1为1,则
返回“设置”
返回“未设置”
让我们看下面的实现以更好地理解-
def solve(n,k): temp = n >> (k - 1) if temp & 1: return "Set" return "Unset" n = 18 k = 2 print(solve(n, k))
18输出结果
Set