Operación Python Notes-XOR, operación O y operación

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:

  1. 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.

  2. 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.

  3. 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:

  1. Si los dos bits son iguales (ambos 0 o ambos 1), el resultado es 0.
  2. 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:

  1. El resultado de aplicar XOR a cualquier número con 0 sigue siendo el número mismo, a^0 = a.
  2. El resultado de cualquier operación XOR de un número consigo mismo es 0, es decir, a^a = 0.
  3. La operación XOR satisface la ley conmutativa, es decir, a ^ b = b ^ a.
  4. 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:

  1. Intercambie los valores de dos variables sin requerir variables temporales adicionales.
  2. Ordena los elementos en una matriz sin utilizar espacio adicional.
  3. 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:

  1. 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
  2. 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:

  1. 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.
  2. 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.
  3. 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:

  1. Inicializa el resultado de una variable a 0.
  2. 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.
  3. 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:

  1. 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))
  1. 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.

Supongo que te gusta

Origin blog.csdn.net/qq_40140808/article/details/131884214
Recomendado
Clasificación