Enum y operadores (noob)

Iniciado por _niu, 20 Diciembre 2011, 18:40 PM

0 Miembros y 2 Visitantes están viendo este tema.

_niu

Hola, casi feliz navidad... (?)

digamos que tengo lo siguiente:

enum {
    id1=0,
    id2=1 << 0,
    id3=1 << 1
};

No caso que quiere decir los <<. Desde ya muchas gracias.
std::cout<<Mi wiki personal<<"Nada es inalcanzable\n";

naderST

Los siguientes operadores se usan para el manejo de bits:

<< (Desplazamiento de bits a la izquierda)
>> (Desplazamiento de bits a la derecha)
& (AND)
| (OR)
^ (XOR)
~ (NOT)

En tu caso en id2 no estas haciendo nada porque le estas desplazando 0 bits a la izquierda al uno, a diferencia de en id3 que le desplazas un bit a la izquierda quedando su valor en 2 por lo siguiente:

Si tienes 1 en binario se vería algo así:

0000001

Si lo desplazas un bit a la izquierda quedaría así:

0000010

Que en decimal sería el numero 2.

EDIT:

Puedes revisar este link para una mejor explicación:
http://c.conclase.net/curso/?cap=018

_niu

jejejeje genial!! Muchas gracias! facilito
std::cout<<Mi wiki personal<<"Nada es inalcanzable\n";