행복한 하루

[Python] 필요할 때 찾아보는 연산자(비트연산자, 비교연산자) 본문

Programming/Python

[Python] 필요할 때 찾아보는 연산자(비트연산자, 비교연산자)

변화의 물결 2023. 5. 15. 00:05

 

 

안녕하세요.

 

  연산자 확인 2번째 내용으로 나머지 비트연산자와 비교연산자를 확인해 보았습니다. 기존 사용하는 언어와 Python에서 사용하는 것에 차이가 있는지 확인해 보는 시간이 되었으면 합니다.


 1. 비트 연산자

  단순 비트 연산을 한다면 쉽지만, NOT 연산자를 사용할 때는 한 번쯤 값이 맞는지 출력해 보고 진행해야 합니다. bin(~0b0011) 이라고 하면 출력이 '0b1100' 될 것 같지만 그렇게 되지 않았습니다.

  '-0b1101' 로 -가 붙고 +1이 되는 것을 알 수 있습니다. 정확한 것은 모르겠지만, 2의 보수처럼 처리하려고 보이려고 느껴집니다. 비트연산할 때 뒤에 & 연산을 더해주면 생각했던 것과 같이 반전된 결과를 확인할 수 있습니다. 
  bin(~0b0011 & 0b1111) 이면 '0b1100' 로 출력됩니다.

   음수에 대해서 "-10"을 단순 이진수 출력으로 보면 10(1010)에 -를 붙여 놓은 것 같지만 & 연산자로 2진수로 보면 컴퓨터가 사용하고 있는 2의 보수(모든 비트 반전, +1)로 나타나는 것을 확인할 수 있습니다.

   

>>> bin(-10)
'-0b1010'
>>> bin(-10 & 0b11111111)
'0b11110110'

 

2. 비교연산자

 - a = 10 경우

 

3. 논리연산과 비교 연산자 사용 예제

  - 간단하게 성적의 범위로 등급을 체크하는 샘플입니다.

def func_grade(score):
    if score >= 80:
        grade = 'A'
    elif (score >= 40) and (score < 80):
        grade = 'B'
    else:
        grade = 'C'
  
    return grade

print(func_grade(79))

 

  - 결과로 B 가 출력되는 것을 알 수 있습니다.

 

 

감사합니다.

 

 

<참고 자료>

1. 파이썬으로 다시 배우는 핵심 고등 수학

2. [Python] 비슷한 연산자의 차이(is, ==, and, &, or, |)

https://velog.io/@kkiyou/py0040

 

 

Comments