Así que solo estaba tratando de manipular un poco en C ++. Esto es lo que probé:
int a = 1<<2;
cout<<a;
Esto da la salida como 4
.
int a = 1<<3;
cout<<a;
Esto da la salida como 8
Pero cuando lo hago:
int a = 1<<2 + 1<<3;
cout<<a;
Da la salida como 64
. ¿Porque?
También probé:
int a = 1<<2;
int b = 1<<3;
cout<<a + b;
Lo que da la salida 12
como se esperaba.
1<<2 + 1<<3
es realmente 1<< 2+1 <<3
. No se deje engañar por los espacios en blanco.
<<
tiene menor prioridad que+
,1<<2 + 1<<3
=1<<(2 + 1)<<3