Diferencia entre revisiones de «xor bit a bit»
De ArduWiki
(→Advertencias) |
|||
Línea 1: | Línea 1: | ||
== Descripción == | == Descripción == | ||
− | Es un operador | + | 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> | + | !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||0 |
|} | |} | ||
== Sintaxis == | == Sintaxis == | ||
<pre> | <pre> | ||
− | + | 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 == |
− | < | + | * 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 == | ||
+ | <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 23:54 25 jun 2018
Contenido
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);
}