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

Python에서만 두 숫자가 1비트 위치에서 다른지 확인하십시오.

<시간/>

두 개의 숫자 x와 y가 있다고 가정합니다. 이 두 숫자가 1비트 위치에서 다른지 여부를 확인해야 합니다.

따라서 입력이 x =25 y =17과 같으면 x =11001이고 y =10001이므로 출력은 True가 됩니다. 1비트 위치만 다릅니다.

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

  • z =x XOR y
  • z의 설정 비트 수가 1이면
    • 참 반환
  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시 코드

def bit_count(n):
   count = 0
   while n:
      count += n & 1
      n >>= 1
   return count
 
def solve(x, y):
   return bit_count(x ^ y) == 1

x = 25
y = 17
print(solve(x, y))

입력

25,17

출력

True