본문 바로가기
알고리즘/[python] 백준 BOJ

[python] &, bit_length()

by Alan_Kim 2025. 4. 14.
728x90
반응형

&

  • 비교 연산자 (명제가 둘다 참인지)
  • Bitwise

 

Example

# 비교 연산자
print(1&0) -> True & False -> False

# Bitwise
print(24&-24) -> 0b11000 & 0b01000 -> 8

 

여기서 보수를 알아야하는데 이진법에는 음수를 표현하는 방법이 없다.

따라서 N과 -N의 차이는 N의 이진법 수에서 0과 1의 숫자를 바꾼 뒤 1을 추가하는 방법으로 반대 되는 수를 계산한다.

 

Bit_length

python에는 bit_length라는 함수가 있다.

이는 오른쪽에서부터 계산할 때, 즉 2의 몇제곱에서 처음으로 이진수가 1이 나오는지 확인하는 함수이다.

즉 0b1000의 bit_length값은 4이다.

print((24&-24).bit_length()) # 4
728x90
반응형

댓글