Python의 비트마스킹 소개
이 튜토리얼은 Python의 비트 마스킹에 대해 교육하고 AND
, OR
, NOT
등과 같은 비트 연산자로 비트 마스킹을 수행하는 방법을 보여줍니다.
Python의 비트마스크 소개
Bitmask는 거의 모든 프로그래밍 언어의 일반적인 개념입니다. 기본적으로 이것은 비트 연산을 돕고 값의 비트를 깊이 이해하고 조작하는 데 도움이 되는 변수일 뿐입니다. 예를 들어 정수 값이라고 합시다.
또한 값을 더 작고 효율적인 버전으로 압축하여 메모리 사용량과 비트 작업을 줄이는 데 도움이 됩니다. 컴퓨터에서 모든 데이터 또는 정보는 하위 수준의 비트에 저장됩니다.
이 비트는 0
(False
) 또는 1
(True
)의 두 가지 상태에만 있을 수 있으며 특정 조합에는 특정 의미가 있습니다.
Python의 비트마스크 개념을 이해하기 위한 예를 살펴보겠습니다.
# convert 8 into binary format --> 1000
bindata = format(8, "b")
print(bindata)
출력:
1000
위의 예에서는 10진수인 8
을 1000
에 해당하는 이진 형식으로 변환했습니다. 이제 우리는 8
과 더 깊이 상호작용하고 그것의 모든 부분을 조작할 수 있습니다.
여기서 비트마스킹 개념이 등장합니다. 그러나 먼저 이진 비트와 상호 작용할 수 있는 방법의 예를 살펴보겠습니다.
예제 코드:
bin_a = int(format(8, "b")) # 1000
bin_b = int(format(1, "b")) # 0001 or 1
# 1000 (8)
# 0001 (1) OR (|) Bitwise Operator
# -----
# 1001 (9)
print(f"bin_ a = {bin_a}")
print(f"bin_ b = {bin_b}")
print(f"The OR (SUM) of bin_a and bin_b = {(bin_a | bin_b)}")
출력:
bin_ a = 1000
bin_ b = 1
The OR (SUM) of bin_a and bin_b = 1001
위의 코드 펜스에서 우리는 |
로 표시되는 비트 연산자 OR
을 사용했습니다. 이 연산자는 비트 단위로 이진 값을 추가하는 데 사용됩니다.
Python의 비트 연산자
비트 연산자는 short
, byte
, long
, char
, int
등의 정수 유형의 비트 단위 연산을 수행합니다. 각각 특정 사용 사례가 있는 다양한 비트 연산자가 있습니다.
- 비트 OR
|
- 비트 AND
&
- 비트별 XOR
^
- 비트 보수
~
비트 OR |
OR
연산자는 |
로 표시되는 비트 연산자이며 두 개 이상의 값을 비트 단위로 조작하고 하나 이상의 값이 true
이면 true
를 반환하고 그렇지 않으면 false
를 반환합니다.
다음은 두 값에 대한 OR (|)
의 기본 구조입니다.
| A
| B
| A| 비
|
| ——— | ——— | ——— |
| 1(참)| 1(참)| 1(참)|
| 0(거짓)| 0(거짓)| 0(거짓)|
| 1(참)| 0(거짓)| 1(참)|
| 0(거짓)| 1(참)| 1(참)|
예제 코드:
# Bitwise operator OR (|)
a = int(format(5, "b")) # 101
b = int(format(4, "b")) # 100
# 101 (5)
# 100 (4) OR (|) Bitwise Operator
# ------
# 101 (5)
print(f"a = {a}\nb = {b}")
print("a & b = ", (a | b)) # 101
출력:
a = 101
b = 100
a & b = 101
비트 AND &
AND
연산자는 &
로 표시되는 비트 연산자이며 두 개 이상의 값을 비트 단위로 계산하고 두 값이 모두 true
인 경우 true
를 반환합니다. 그렇지 않으면 false
입니다.
두 값에 대한 AND
(&
)의 기본 구조입니다.
A |
B |
에이앤비 |
---|---|---|
1(참) | 1(참) | 1(참) |
0(거짓) | 0(거짓) | 0(거짓) |
1(참) | 0(거짓) | 1(거짓) |
0(거짓) | 1(참) | 0(거짓) |
예제 코드:
# Bitwise operator AND (&)
a = int(format(5, "b")) # 101
b = int(format(4, "b")) # 100
# 101 (5)
# 100 (4) AND (&) Bitwise Operator
# -----
# 100 (4)
print(f"a = {a}\nb = {b}")
print("a & b = ", (a & b)) # 100
출력:
a = 101
b = 100
a & b = 100
비트별 XOR ^
^
로 표시되는 이항 연산자이며 주어진 두 값이 true
또는 false
와 같을 때 false
를 반환합니다. 그렇지 않으면 true
를 반환합니다.
XOR
연산자의 기본 구조는 다음과 같습니다.
A |
B |
A ^ B |
---|---|---|
1(참) | 1(참) | 0(거짓) |
0(거짓) | 0(거짓) | 0(거짓) |
1(참) | 0(거짓) | 1(참) |
0(거짓) | 1(참) | 1(참) |
예제 코드:
# Bitwise operator XOR (^)
a = int(format(7, "b")) # 101
b = int(format(4, "b")) # 100
# 111 (7)
# 100 (4) XOR (^) Bitwise Operator
# ------
# 011 (3)
print(f"a = {a}\nb = {b}")
print("a ^ b = ", (a ^ b)) # 011 or 11
출력:
a = 111
b = 100
a ^ b = 11
비트 보수 ~
비트 보수(~
)는 NOT
연산자로 알려진 단항 연산자입니다. NOT
연산자는 값의 비트 패턴을 반전시킵니다.
NOT
연산자의 기본 구조는 다음과 같습니다.
A |
~A |
---|---|
1(참) | 0(거짓) |
0(거짓) | 1(참) |
NOT
(~)의 개념을 알아보기 위해 아래 예제를 살펴보겠습니다.
# Bitwise operator NOT (~)
a = int(format(0, "b"))
print(f"a = {a}")
print(f"The Complement of a = {~a}")
출력:
a = 0
The Complement of a = -1
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn