Diferencia entre revisiones de «xor bit a bit compuesto»
De ArduWiki
(Página creada con «== Descripción == El operador '''xor bit a bit compuesto''' <nowiki>(^=)</nowiki> se usa a menudo para invertir (toggle) determinados bits en una variable. {| class="wik...») |
(→Referencias) |
||
(No se muestran 12 ediciones intermedias del mismo usuario) | |||
Línea 2: | Línea 2: | ||
El operador '''xor bit a bit compuesto''' <nowiki>(^=)</nowiki> se usa a menudo para invertir (toggle) determinados bits en una variable. | El operador '''xor bit a bit compuesto''' <nowiki>(^=)</nowiki> se usa a menudo para invertir (toggle) determinados bits en una variable. | ||
− | {| class="wikitable" | + | {| class="wikitable col3cen" |
+ | !a!!b!!a <nowiki>^=</nowiki> b | ||
|- | |- | ||
− | | | + | |0||0||0 |
|- | |- | ||
− | + | |1||0||1 | |
|- | |- | ||
− | | | + | |0||1||1 |
+ | |- | ||
+ | |1||1||0 | ||
|} | |} | ||
Línea 15: | Línea 18: | ||
== Sintaxis == | == Sintaxis == | ||
<pre> | <pre> | ||
+ | variable ^= mascara; | ||
+ | variable = variable ^ mascara; | ||
</pre> | </pre> | ||
== Parametros == | == Parametros == | ||
+ | ;variable: Nombre de la variable sobre la cual operar. Puede ser: [[char]], [[byte]], [[int]] o [[long]]. | ||
+ | ;mascara: Constante entera puede ser [[char]], [[byte]], [[int]] o [[long]]. | ||
== Retorno == | == Retorno == | ||
+ | * Los bits tratados con 0, mantienen su estado. | ||
+ | * Los bits tratados con 1, cambian su estado. | ||
+ | |||
+ | == Comentario == | ||
+ | Debido a que se trata de bits de un operador de bits - es conveniente usar el formateador binario con constantes. Las cifras siguen siendo el mismo valor en otras representaciones, que simplemente no son tan fáciles de entender. Además, B00000000 se muestra por claridad, pero cero en cualquier formato de número es cero. | ||
== Advertencia == | == Advertencia == | ||
Línea 25: | Línea 37: | ||
== Ejemplo 1 == | == Ejemplo 1 == | ||
+ | Para conmutar los 2 bits menos significativos de una variable, dejando el resto de la variable sin cambios, se use el operador '''xor bit a bit compuesto''' (^=) con la constante B00000011. | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | byte a = B10101010; | ||
+ | a ^= B00000011; //B10101001 | ||
+ | </syntaxhighlight> | ||
− | == | + | == Vea también == |
+ | * [[incremento]] <nowiki>(++)</nowiki> | ||
+ | * [[decremento]] <nowiki>(--)</nowiki> | ||
+ | * [[suma compuesta]] <nowiki>(+=)</nowiki> | ||
+ | * [[resta compuesta]] <nowiki>(-=)</nowiki> | ||
+ | * [[multiplicacion compuesta]] <nowiki>(*=)</nowiki> | ||
+ | * [[division compuesta]] <nowiki>(/=)</nowiki> | ||
+ | * [[modulo compuesto]] <nowiki>(%=)</nowiki> | ||
+ | * [[or bit a bit compuesto]] <nowiki>(|=)</nowiki> | ||
+ | * [[and bit a bit compuesto]] <nowiki>(&=)</nowiki> | ||
− | == Referencias == | + | == Referencias externas == |
− | [[Category: | + | [[Category:Operador bit a bit compuesto]] |
Revisión actual del 00:09 27 sep 2019
Contenido
Descripción
El operador xor bit a bit compuesto (^=) se usa a menudo para invertir (toggle) determinados bits en una variable.
a | b | a ^= b |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
Nota: A menudo se hace referencia en las guías de programación como "invertido" (TOGLE) de bits.
Sintaxis
variable ^= mascara; variable = variable ^ mascara;
Parametros
- variable
- Nombre de la variable sobre la cual operar. Puede ser: char, byte, int o long.
- mascara
- Constante entera puede ser char, byte, int o long.
Retorno
- Los bits tratados con 0, mantienen su estado.
- Los bits tratados con 1, cambian su estado.
Comentario
Debido a que se trata de bits de un operador de bits - es conveniente usar el formateador binario con constantes. Las cifras siguen siendo el mismo valor en otras representaciones, que simplemente no son tan fáciles de entender. Además, B00000000 se muestra por claridad, pero cero en cualquier formato de número es cero.
Advertencia
Nada.
Ejemplo 1
Para conmutar los 2 bits menos significativos de una variable, dejando el resto de la variable sin cambios, se use el operador xor bit a bit compuesto (^=) con la constante B00000011.
byte a = B10101010;
a ^= B00000011; //B10101001
Vea también
- incremento (++)
- decremento (--)
- suma compuesta (+=)
- resta compuesta (-=)
- multiplicacion compuesta (*=)
- division compuesta (/=)
- modulo compuesto (%=)
- or bit a bit compuesto (|=)
- and bit a bit compuesto (&=)