Operador lógico XOR en C

Waqar Aslam 12 octubre 2023
  1. una descripción general del operador XOR (^) en C
  2. Use ^ para aplicar XOR en el lenguaje de programación C
  3. Aplicar XOR en lenguaje de programación C
Operador lógico XOR en C

En este artículo, comprenderemos el operador lógico XOR (^) en el lenguaje de programación C.

una descripción general del operador XOR (^) en C

·OR exclusivo·, también conocido como XOR, es un operador lógico que devuelve un resultado ‘verdadero’ cuando cualquiera de los operandos es verdadero (uno es verdadero y el otro es falso), pero no cuando ambos son verdaderos ni cuando ambos son FALSO. Cuando ambos operandos son verdaderos, usar el o básico en la creación de condiciones lógicas puede generar confusión.

Porque bajo tales circunstancias, es un desafío comprender qué es lo que cumple precisamente con los criterios. Esta cuestión se ha resuelto añadiendo el calificativo exclusivo a la palabra o, que también aclara su significado.

Use ^ para aplicar XOR en el lenguaje de programación C

El operador ^, también conocido como XOR bit a bit, toma dos números enteros como operandos y realiza XOR en cada bit de ambos números.

Si ambos bits son diferentes, la operación XOR proporcionará un valor de 1. Si los bits son idénticos devolverá el valor 0..

Tomemos un ejemplo para aplicar el XOR bit a bit en C. En primer lugar, importe las bibliotecas y cree una función main().

#include <stdio.h>
int main() {}

Dentro de la función principal, establezca dos variables llamadas firstValue y secondValue con el tipo de datos int y establezca valores enteros para cada una. El primer valor es igual a 0101,, y el segundo valor es igual a 1001 en formato binario.

int firstValue = 5;
int secondValue = 9;

Ahora que tenemos estas dos variables, necesitamos aplicarles XOR, así que vamos a crear una nueva variable llamada applyXOR y usar el símbolo ^ en ambas variables.

int applyXOR = firstValue ^ secondValue;

En la expresión anterior, la operación XOR se realizará en ambos valores binarios que se muestran a continuación.

firstValue secondValue firstValue ^ secondValue
0 1 1
1 0 1
0 0 0
1 1 0

Ahora obtenemos el número 1100 en formato binario, que, convertido a decimal, es lo mismo que el valor 12. Luego imprimimos el valor que se obtuvo.

printf("The value obtained after applying XOR is: %d", applyXOR);

Aplicar XOR en lenguaje de programación C

Ejemplo de código:

#include <stdio.h>
int main() {
  int firstValue = 5;
  int secondValue = 9;
  int applyXOR = firstValue ^ secondValue;

  printf("The value obtained after applying XOR is: %d", applyXOR);

  return 0;
}

Producción :

The value obtained after applying XOR is: 12

Tomemos otro ejemplo para demostrar el funcionamiento del operador XOR (^).

Dada una colección de números en la que cada elemento aparece un número par de veces excepto un número, localiza el número impar que aparece. Simplemente aplicar el operador XOR (^) a cada entero para resolver este problema es una forma efectiva de abordarlo.

Ejemplo de código:

#include <stdio.h>
int getOddOccurringNumber(int arr[], int number) {
  int value = 0, i;
  for (i = 0; i < number; i++) value ^= arr[i];
  return value;
}

int main(void) {
  int array[] = {12, 12, 14, 90, 14, 16, 16};
  int sizeNumber = sizeof(array) / sizeof(array[0]);
  printf("The value that occurred odd times in the list is: %d ",
         getOddOccurringNumber(array, sizeNumber));
  return 0;
}

Producción :

The value that occurred odd times in the list is: 90
Waqar Aslam avatar Waqar Aslam avatar

I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.

LinkedIn

Artículo relacionado - C Operator