별의 공부 블로그 🧑🏻‍💻
728x90
728x170

*비트 연산자(Bitwise Operator)


연산자

설명 

&

10 & 5

 AND 연산 : 모두 참(1)일 경우만 참(1)

|

10 | 5

 OR 연산 : 둘 중 하나만 참(1)일 경우 참(1)

^

10 ^ 5

 XOR 연산 : 모두 다를 경우만 참(1)

<<

10 << 2

 왼쪽 비트 이동 연산 

>>

10 >> 2

 오른쪽 비트 이동 연산



# 비트 연산자 

'''
    & : AND 비트 연산
    | : OR 비트 연산
    ^ : XOR 비트 연산
    << : 왼쪽 피연산자의 비트를 왼쪽으로 이동
    >> : 왼쪽 피연산자의 비트를 오른쪽으로 이동
'''

print(10&5)     # 0
print(10|5)     # 15
print(10^5)     # 15
print(10<<2)    # 40
print(10>>2)    # 2

''' 풀이
    bin(10) : 0b1010
    bin(5) : 0b101

    (1) &(AND)
    10: 1010
    5 : 0101
    ---------
        0000(2) -> 0(10)

    (2) |(OR)
    10: 1010
    5 : 0101
    ---------
        1111(2) -> 15(10)

    (3) ^(XOR)
    10: 1010
    5 : 0101
    ---------
        1111(2) -> 15(10)

    (4) <<(LSHIFT)
    10<<2
    10 : 1010+`00`(add) -> 101000(2) -> 40 <=> 10 * 2^2 = 40

    (5) >> (RSHIFT)
    10>>2
    10 : 10'10'(remove) -> 10(2) -> 2 <=> 10 / 2^2 = 2
    
'''

'''
    따라서,

    X>>N = X * 2^N
    X<<N = X / 2^N
'''

print(16>>2# = 16 / 2^2 = 4
print(16<<2# = 16 * 2^2 = 64


비트 계산은 2진의 숫자로 한다.

그러므로 10진수의 숫자로 비트 연산자를 사용하여 연산을 하게 되면, 파이썬 IDE는 자동으로 10진수의 수를 2진수의 수로 변환하여 비트 연산을 수행한다.


공식처럼 외워두자.


 비트 이동 공식


728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖