Operadores de bits
~
int a= 3;
un -> 0000 0000 0000 0000 0000 0000 0000 0011
~a -> 1111 1111 1111 1111 1111 1111 1111 11 00
& la lógica de bits tiene cero, obtenga cero ----> Borrar operación
int a= 3; a:0011
intb= 5;b:0101
a y b: 0001
| Uno con operación obtiene otra ---->Establecer una operación
int a= 3; a:0011
intb= 5;b:0101
a|b: 0111
^ El XOR lógico de bits devuelve 0 si son iguales y 1 si son diferentes.
int a= 3; a:0011
intb= 5;b:0101
intc=a^b;
printf("c:%d\n",c); // 6
printf("c^a:%d\n",c^a); // 3 ---->a
printf("c^b:%d\n",c^b); //5 ----->b
<< Los desplazados a la izquierda se descartan directamente y los vacíos se rellenan con 0.
int a = 3;
un -> 0000 0000 0000 0000 0000 0000 0000 0011
un<<4 0000 0000 0000 0000 0000 0000 0011 0000
int a=-3; //Los números negativos se almacenan en la memoria usando el código complementario
un -> 1000 0000 0000 0000 0000 0000 0000 0011
Tori // 1111 1111 1111 1111 1111 1111 1111 1100
Código complemento más 1 // 1111 1111 1111 1111 1111 1111 1111 1101
un <<4 1111 1111 1111 1111 1111 1111 1101 0000 // -48
-48 // 1000 0000 0000 0000 0000 0000 0011 0000
Tori // 1111 1111 1111 1111 1111 1111 1100 1111
Más uno // 1111 1111 1111 1111 1111 1111 1101 0000
>>Mover a la derecha
int a = 3;
un -> 0000 0000 0000 0000 0000 0000 0000 0011
a >>4 0000 0000 0000 0000 0000 0000 0000 0000