Python 강좌 : 제 6강 - 비트 연산
비트 연산(Bitwise)
연산 | 의미 |
---|---|
x | y | or |
x & y | and |
x ^ y | xor |
x « y | left shift |
x » y | right shift |
~x | not |
비트 연산
을 통하여 2진법
으로 구성된 값을 계산할 수 있습니다.
각 자릿수를 서로 비교하여 결과를 반환합니다.
or
: 둘 중 하나의 값이 1일 경우 1을 반환and
: 둘 다 값이 1일 경우 1을 반환xor
: 둘 다 값이 다를 경우 1을 반환left shift
: 좌측으로 y회 비트 밀기right shift
: 우측으로 y회 비트 밀기not
: 반전
- 결과
- 0b1110 14
0b10 2
0b1100 12
0b1100 12
0b101 5
-0b111 -7
2진법
은 0b
를 포함하여 0
과 1
로 구성된 진법입니다. 맨 우측 첫 자릿수부터 2^n-1
을 의미합니다. (n=1)
0b0110
의 경우 0 / 1 / 1 / 0
이므로 2^2 + 2^1
입니다. 즉, 0b0110
=6
을 의미합니다.
0b1010
의 경우 1 / 0 / 1 / 0
이므로 2^3 + 2^1
입니다. 즉, 0b1010
=10
을 의미합니다.
or
, and
, xor
은 각 자릿수들을 비교하여 반환하며 결과에서 확인 가능합니다.
shift
는 y
회 만큼 방향으로 이동하며 결과에서 확인 가능합니다.
not
의 경우 0 → 1
로 1 → 0
으로 반전시킵니다. 하지만 여기서 -6
이 아닌 -7
이 나오는데, 2의 보수
표현법을 사용하기 때문입니다.
- Tip :
2의 보수
란 반전 시킨 값에+1
을 더해주어 음수를 표현하기 위해 사용합니다. 맨 앞에-
을 표현하여 반전을 대체합니다.
함수 사용
- 결과
- [True, True, False]
False
True
[1, 1, 0]
False
True
[True, True, True]
True
True
all(목록)
을 사용하여 목록 내의 모든 원소
가 참
일 경우 True
를 반환합니다.
any(목록)
을 사용하여 목록 내의 원소 중 하나라도
참
일 경우 True
를 반환합니다.
- Tip :
논리 형식
이나상수형
,조건식
등True
나False
로 반환되는 값은 사용이 가능합니다.
- 결과
- False
True
True
False
isinstance(객체, 클래스)
를 사용하여 객체
가 클래스의 객체
인지를 확인합니다.
댓글 남기기