funcionar | Características | Escenarios de aplicación |
---|---|---|
XOR | Si los dos operandos son diferentes, el resultado es 1; si son iguales, el resultado es 0. | Algoritmos de cifrado, cálculos de suma de comprobación, búsqueda de elementos que aparecen un número impar de veces en una matriz, etc. |
o | Si uno de los dos operandos es 1, el resultado es 1. | Juicio lógico, control de autoridad, juicio del estado del interruptor, etc. |
y | Si ambos operandos son 1, el resultado es 1. | Operación de máscara, operación de bits, juicio lógico, etc. |
ilustrar:
-
Operación O exclusiva (XOR): Cuando los dos operandos son diferentes, el resultado es 1; cuando los dos operandos son iguales, el resultado es 0. La operación XOR tiene las características de reflexividad (A XOR A = 0) y ley conmutativa (A XOR B = B XOR A). La operación XOR se usa ampliamente en escenarios como algoritmos de cifrado, cálculos de suma de verificación y búsqueda de elementos que aparecen un número impar de veces en una matriz.
-
Operación U (OR): Cuando uno de los dos operandos es 1, el resultado es 1; cuando ambos operandos son 0, el resultado es 0. O las operaciones se utilizan a menudo en escenarios como juicio lógico, control de permisos y juicio de estado de interruptor.
-
Operación AND (AND): Cuando ambos operandos son 1, el resultado es 1; cuando uno de los dos operandos es 0, el resultado es 0. Las operaciones AND se utilizan a menudo en operaciones de máscara, operaciones de bits, juicios lógicos y otros escenarios.
Estas operaciones lógicas se utilizan ampliamente en los campos de la informática y la ingeniería electrónica y pueden utilizarse para realizar tareas como juicio lógico, cifrado de datos, verificación de transmisión de datos y operaciones de bits. En programación y diseño de circuitos, estas operaciones lógicas proporcionan la base para construir lógica y funcionalidad complejas.
operación XOR
La operación XOR (XOR, OR exclusivo) es una operación binaria que se aplica a cada bit de dos números binarios, sus reglas de operación son las siguientes:
- Si los dos bits son iguales (ambos 0 o ambos 1), el resultado es 0.
- Si los dos bits son diferentes (uno es 0 y el otro es 1), el resultado es 1.
El símbolo comúnmente utilizado para la operación XOR es , generalmente expresado como " " en los lenguajes de programación .
La operación XOR tiene algunas propiedades importantes:
- El resultado de aplicar XOR a cualquier número con 0 sigue siendo el número mismo, a^0 = a.
- El resultado de cualquier operación XOR de un número consigo mismo es 0, es decir, a^a = 0.
- La operación XOR satisface la ley conmutativa, es decir, a ^ b = b ^ a.
- La operación XOR satisface la ley asociativa, es decir, (a ^ b) ^ c = a ^ (b ^ c).
Debido a estas propiedades, las operaciones XOR se usan ampliamente en computadoras y a menudo se usan en los siguientes escenarios:
- Intercambie los valores de dos variables sin requerir variables temporales adicionales.
- Ordena los elementos en una matriz sin utilizar espacio adicional.
- Determine rápidamente si dos números son iguales. Debido a la propiedad de a^b = 0, se puede utilizar para determinar si dos números son iguales.
En programación, la operación XOR se suele utilizar para resolver algunos problemas de operaciones de bits y operaciones informáticas de bajo nivel, y también es una de las técnicas comunes para resolver algunos problemas algorítmicos.
Operación O, operación Y
La operación OR (OR, Bitwise OR) y la operación AND (AND, Bitwise AND) son dos operaciones binarias que se aplican a cada bit de dos números binarios. Sus reglas de operación son las siguientes:
-
O operación (|): siempre que uno de los dos bits binarios sea 1, el resultado es 1; de lo contrario, el resultado es 0.
- Por ejemplo: 0b1101 | 0b1010 = 0b1111
-
Operación AND (&): Ambos bits binarios deben ser 1 antes de que el resultado sea 1; de lo contrario, el resultado es 0.
- Por ejemplo: 0b1101 y 0b1010 = 0b1000
Las operaciones OR y AND se usan ampliamente en computadoras y a menudo se usan en los siguientes escenarios:
- Máscara de bits: mediante operaciones Y y O, se pueden enmascarar bits específicos de un número para extraer o establecer información de bits específica.
- Juicio condicional: puede utilizar operaciones Y y O para lograr el efecto del juicio condicional, como juzgar si se deben realizar determinadas operaciones o establecer determinados indicadores en función de una determinada condición.
- Operaciones de bits: las operaciones Y y O son las operaciones básicas de las operaciones de bits, que se pueden utilizar para realizar varias operaciones a nivel de bits en números binarios, como desplazamiento, negación, etc.
En programación, las operaciones OR y AND se utilizan a menudo para resolver algunos problemas de operación de bits o para controlar y operar bits de números binarios. Son la base de las operaciones subyacentes de las computadoras y también son herramientas de uso común en algunos algoritmos y procesamiento de datos.
Aplicación de XOR
Por ejemplo, para la matriz [2, 3, 4, 2, 4, 5, 3], podemos hacer lo siguiente:
- Inicializa el resultado de una variable a 0.
- Realice la operación resultado ^= num en cada número num en la matriz, es decir, realice la operación XOR en resultado y num, y asigne el resultado al resultado.
- El valor final del resultado es el número que aparece sólo una vez.
Ejemplo de código Python:
def find_single_number(nums):
result = 0
for num in nums:
result ^= num
return result
# 示例
nums = [2, 3, 4, 2, 4, 5, 3]
print(find_single_number(nums)) # 输出:5
Mediante la operación XOR, podemos encontrar de manera eficiente los números que aparecen solo una vez en la matriz sin utilizar estructuras de datos adicionales ni métodos transversales complejos.
y operación, o aplicación de operación
A continuación se muestran dos ejemplos de algoritmos que utilizan operaciones OR y AND:
- Enmascaramiento de bits:
el enmascaramiento de bits es una técnica para enmascarar bits específicos de un número mediante operaciones Y y O. Al establecer ciertos bits en 1 o 0, podemos enmascarar o extraer la información requerida.
Ejemplo: utilice una máscara de bits para extraer los 16 bits inferiores y los 16 bits superiores de un entero de 32 bits.
def extract_low_and_high_bits(num):
low_bits = num & 0xFFFF # 0xFFFF表示16个二进制位全为1,其余位全为0
high_bits = (num >> 16) & 0xFFFF
return low_bits, high_bits
# 示例
number = 0b11001100110011001100110011001100 # 一个32位整数
low, high = extract_low_and_high_bits(number)
print("低16位:", bin(low))
print("高16位:", bin(high))
- Determinar números pares e impares:
para un número binario, su último bit es 1 para indicar un número impar y 0 para indicar un número par. Por lo tanto, podemos utilizar la operación AND para determinar si un número entero es par o impar.
Ejemplo: utilice la operación AND para determinar si un número entero es par o impar.
def is_even_or_odd(num):
if num & 1 == 0:
return "偶数"
else:
return "奇数"
# 示例
number = 10
print(number, "是", is_even_or_odd(number))
Estos ejemplos muestran la aplicación de las operaciones OR y AND en algoritmos. Pueden ayudarnos a realizar operaciones y juicios a nivel de bits y son técnicas comunes para resolver algunos problemas de números binarios.