Introducción al enmascaramiento de bits en Python
Este tutorial educa sobre el enmascaramiento de bits en Python y demuestra cómo podemos realizar el enmascaramiento de bits con operadores bit a bit, por ejemplo, Y
, O
, NO
, etc.
Introducción a la máscara de bits en Python
Bitmask es un concepto general para casi todos los lenguajes de programación; básicamente, es solo una variable que lo ayuda con operaciones bit a bit y ayuda a comprender y manipular los bits de un valor, digamos valores enteros.
También ayuda a comprimir los valores en una versión más pequeña y eficiente, lo que reduce el uso de memoria y las operaciones en bits. En las computadoras, cada dato o información se almacena en bits en un nivel inferior.
Este bit solo puede estar en dos estados, ya sea 0
(False
) o 1
(True
), y una combinación específica tiene un significado particular.
Veamos un ejemplo para entender el concepto de máscara de bits en Python.
# convert 8 into binary format --> 1000
bindata = format(8, "b")
print(bindata)
Producción :
1000
En el ejemplo anterior, hemos convertido 8
, un entero decimal, en forma binaria, equivalente a 1000
. Ahora, podemos interactuar con 8
en una forma más profunda y manipular cada parte de él.
Aquí es donde entra en escena el concepto de enmascaramiento de bits. Pero, primero, veamos un ejemplo de cómo podemos interactuar con los bits binarios.
Código de ejemplo:
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)}")
Producción :
bin_ a = 1000
bin_ b = 1
The OR (SUM) of bin_a and bin_b = 1001
En la cerca de código anterior, hemos usado el operador bit a bit OR
representado como |
, que se usa para agregar valores binarios poco a poco.
Operadores bit a bit en Python
Los operadores bit a bit realizan operaciones bit a bit de cualquier tipo integral short
, byte
, long
, char
, int
, etc. Existen diferentes operadores bit a bit, cada uno tiene un caso de uso específico.
- Bit a bit O
|
- Bit a bit Y
&
- Bit a bit XOR
^
- Complemento bit a bit
~
Bit a bit O |
El operador OR
es un operador bit a bit representado como |
, y manipula bit a bit dos o más valores y devuelve true
cuando al menos un valor es true
o false
.
La siguiente es la estructura básica de OR (|)
para dos valores:
A |
B |
A & B |
---|---|---|
1 (True) | 1 (True) | 1 (True) |
0 (False) | 0 (False) | 0 (False) |
1 (True) | 0 (False) | 1 (False) |
0 (False) | 1 (True) | 0 (False) |
Código de ejemplo:
# 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
Producción :
a = 101
b = 100
a & b = 101
Bit a bit Y &
El operador AND
es un operador bit a bit representado como &
, y realiza un cálculo bit a bit de dos o múltiples valores y devuelve true
si ambos valores son verdaderos
; en caso contrario, false
.
La es la estructura básica de AND
(&
) para dos valores:
A |
B |
A y B |
---|---|---|
1 (Verdadero) | 1 (Verdadero) | 1 (Verdadero) |
0 (falso) | 0 (falso) | 0 (falso) |
1 (Verdadero) | 0 (falso) | 1 (falso) |
0 (falso) | 1 (Verdadero) | 0 (falso) |
Código de ejemplo:
# 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
Producción :
a = 101
b = 100
a & b = 100
Bit a bit XOR ^
Es un operador binario denotado por ^
, y devuelve false
cuando los dos valores dados son iguales, ya sea true
o false
; de lo contrario, devolverá true
.
La estructura básica del operador XOR
es la siguiente:
A |
B |
A ^ B |
---|---|---|
1 (Verdadero) | 1 (Verdadero) | 0 (falso) |
0 (falso) | 0 (falso) | 0 (falso) |
1 (Verdadero) | 0 (falso) | 1 (Verdadero) |
0 (falso) | 1 (Verdadero) | 1 (Verdadero) |
Código de ejemplo:
# 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
Producción :
a = 111
b = 100
a ^ b = 11
Complemento bit a bit ~
El Complemento bit a bit (~
) es un operador unario conocido como el operador NOT
. El operador NOT
invierte el patrón de bits de un valor.
La estructura básica del operador NOT
es:
A |
~A |
---|---|
1 (Verdadero) | 0 (falso) |
0 (falso) | 1 (Verdadero) |
Veamos un ejemplo a continuación para aprender el concepto de NO
(~).
# Bitwise operator NOT (~)
a = int(format(0, "b"))
print(f"a = {a}")
print(f"The Complement of a = {~a}")
Producción :
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