[C con Clase] Para que sirve esta notación?? ^=
Steven Davidson
srd4121 en njit.edu
Vie Oct 8 07:50:21 CEST 2010
Hola Miguel,
On 10/8/2010 1:41 AM, Miguel Olave wrote:
> Esop!!
>
> He buscado pero no encuentro que hace esta notación:
>
> i ^= 1;
>
> hice un pequeño programa para ver si lo descubria pero no "me o
> entender"
>
> #include <stdio.h>
>
> int main(){
> int i=0, z=1, j;
>
> for(j=0;i<10;i++){
> i ^= 1;
> z ^= 1;
> printf("i:%d, z:%d\n",i,z);
> }
> }
> Resultado:
> i:1, z:0
> i:3, z:1
> i:5, z:0
> i:7, z:1
> i:9, z:0
>
> Demás que alguien sabe y puede decirme en un par de líneas sin perder
> mucho tiempo.
>
El operador ^= es el equivalente a hacer dos operaciones: ^ (XOR: OR
eXclusivo) y = (asignación). Para información acerca del operador ^,
consulta el capítulo 18 de nuestro curso de C++:
http://c.conclase.net/curso/index.php?cap=018#inicio
Brevemente, este operador es a nivel de bits. Te doy la tabla de verdad,
pero con bits, para entender esta operación:
A | B | A ^ B
---+---+-------
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
1 | 1 | 0
Si ambos bits son iguales, entonces el resultado es 0; de lo contrario,
es 1.
Espero haber aclarado el asunto.
Steven
Más información sobre la lista de distribución Cconclase