숫자 n과 다른 값 k가 있다고 가정합니다. n의 k번째 비트가 1로 설정되어 있는지 확인해야 합니다. k의 값은 오른쪽에서 고려됩니다.
따라서 입력이 n =23, k =3과 같으면 23의 이진 형식이 10111이므로 세 번째 마지막 비트가 1(세트)이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- temp :=n 비트를 오른쪽으로 (k - 1)번 이동한 후
- temp AND 1이 1이면
- 참 반환
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
def solve(n,k): temp = n >> (k - 1) if temp & 1: return True return False n = 23 k = 3 print(solve(n, k))
입력
23, 3
출력
True