Diferencia entre revisiones de «xor bit a bit»

De ArduWiki
Saltar a: navegación, buscar
(Advertencias)
Línea 1: Línea 1:
 
== Descripción ==
 
== Descripción ==
Es un operador boleano '''or''' <nowiki>||</nowiki> que permite unir dos expresiones lógicamente.
+
Es un operador '''xor bit a bit''' <nowiki>^</nowiki> (or exclusivo) que permite unir dos variables bit a bit. Evalua cada bit de la primero variable respecto a la segunda variable.
  
 
{| class="wikitable col3cen"
 
{| class="wikitable col3cen"
!a!!b!!a <nowiki>||</nowiki> b
+
!a!!b!!a <nowiki>^</nowiki> b
 
|-
 
|-
 
|0||0||0
 
|0||0||0
Línea 11: Línea 11:
 
|0||1||1
 
|0||1||1
 
|-
 
|-
|1||1||1
+
|1||1||0
 
|}
 
|}
  
 
== Sintaxis ==
 
== Sintaxis ==
 
<pre>
 
<pre>
espresion 1 || expresion 2
+
variable 1 ^ variable 2
 
</pre>
 
</pre>
  
Línea 25: Línea 25:
 
* No confundir el operador boleano '''xor''' <nowiki>^</nowiki>, con el operador [[xor bit a bit]] <nowiki>x</nowiki>.
 
* No confundir el operador boleano '''xor''' <nowiki>^</nowiki>, con el operador [[xor bit a bit]] <nowiki>x</nowiki>.
  
== Ejemplo ==
+
== Comentario ==
<pre>
+
* Este operador se usa a menudo para invertir cada bites (es decir si cambio de 0 a 1, o de 1 a 0) algunos de los bits en una expresión entera.
</pre>
+
* 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 se mantiene igual.
 +
 
 +
== Ejemplo 1 ==
 +
<syntaxhighlight lang="c++">
 +
byte a = B1100;
 +
byte b = B1010;
 +
a ^ b;            //0110
 +
</syntaxhighlight>
 +
 
 +
== Ejemplo 2 ==
 +
Parpadea un LED en el pin digital 5.
 +
<syntaxhighlight lang="c++">
 +
void setup () {
 +
  Serial.begin (115200);
 +
  DDRD = DDRD | B00100000;  //Configura el pin digital 5 como OUTPUT
 +
}
 +
void loop () {
 +
  PORTD = PORTD ^ B00100000; //Invertido el bit 5 (pin digital 5), deja los otros intactos
 +
  delay(500);
 +
}
 +
</syntaxhighlight>
  
 
== Vea también ==
 
== Vea también ==

Revisión del 19:54 25 jun 2018

Descripción

Es un operador xor bit a bit ^ (or exclusivo) que permite unir dos variables bit a bit. Evalua cada bit de la primero variable respecto a la segunda variable.

a b a ^ b
0 0 0
1 0 1
0 1 1
1 1 0

Sintaxis

variable 1 ^ variable 2

Retorna

Verdadero o falso.

Advertencias

  • No confundir el operador boleano xor ^, con el operador xor bit a bit x.

Comentario

  • Este operador se usa a menudo para invertir cada bites (es decir si 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 se mantiene igual.

Ejemplo 1

byte a = B1100;
byte b = B1010;
a ^ b;            //0110

Ejemplo 2

Parpadea un LED en el pin digital 5.

void setup () {
   Serial.begin (115200);
   DDRD = DDRD | B00100000;   //Configura el pin digital 5 como OUTPUT
}
void loop () {
   PORTD = PORTD ^ B00100000; //Invertido el bit 5 (pin digital 5), deja los otros intactos
   delay(500);
}

Vea también

Referencias