^ XOR bit a bit

Descripción

Los operadores bit a bit realizan sus cálculos a nivel de bits de las variables. Ellos ayudan a resolver una amplia gama de problemas comunes de programación. Gran parte del material de abajo es de un excelente tutorial sobre matemáticas a nivel de bits que se pueden encontrar aquí.

Hay un operador algo inusual en C++ denominadoOR EXCLUSIVO bit a bit , también conocido como XOR bit a bit. (En Inglés esto generalmente se pronuncia "EKS-o".) El operador XOR bit a bit se escribe utilizando el símbolo de intercalación ^. Este operador es muy similar a la del operador binario OR |, sólo se evalúa a 0 para una posición de bit dada cuando los dos bits de entrada para esa posición son 1:

0 0 1 1 operando1 0 1 0 1 operando2 ---------- 0 1 1 0 (operando1 ^ operando2) - resultado devuelto

Otra manera de mirar XOR bit a bit es que cada bit del resultado es 1 si los bits de entrada son diferentes, o 0 si son iguales.

Ejemplo

Aquí un sencillo ejemplo de código:

int x = 12; // Binario: 1100 int y = 10; // Binario: 1010 int z = x ^ y; // Binario: 0110, o decimal 6

El operador ^ se utiliza a menudo para cambiar (es decir, cambio de 0 a 1, o de 1 a 0) algunos de los bits en una expresión entera. En una operación OR si hay un 1 en el bit de máscara, el bit se invierte; si hay un 0, el bit no se invierte y se mantiene igual. A continuación se muestra un programa para producir un parpadeo en pin digital 5.

// Blink_Pin_5 // Demo de OR Exclusivo void setup() { DDRD = DDRD | B00100000; // Configura el pin digital 5 como SALIDA Serial.begin (9600); } void loop() { PORTD = PORTD ^ B00100000; // Invertido el bit 5 (pin digital 5), deja los otros intactos delay (100); }

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES

  • We are AVAILABLE for HIRE. See how to hire us to build your project
  • Any suggestion, correction, and translation? please email us at ArduinoGetStarted@gmail.com, We appreciate it
  • We mainly keep improving the references in English. See English version of this page for the latest update.