Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 주어진 위치의 비트가 설정 또는 해제되었는지 확인

<시간/>

숫자 n과 다른 값 k가 있다고 가정합니다. n의 k번째 비트가 설정(1) 또는 설정 해제(0)되었는지 확인해야 합니다. k의 값은 오른쪽에서 고려됩니다.

따라서 입력이 n =18 k =2와 같으면 출력은 18의 이진 형식으로 10010으로 설정되므로 두 번째 마지막 비트는 1(설정)입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • temp :=비트를 오른쪽으로 (k - 1)번 이동한 후 n
  • 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