Então, eu estava apenas tentando um pouco de manipulação em C ++. Aqui está o que eu tentei:
int a = 1<<2;
cout<<a;
Isso fornece a saída como 4.
int a = 1<<3;
cout<<a;
Isso fornece a saída como 8
Mas quando eu faço:
int a = 1<<2 + 1<<3;
cout<<a;
Dá a saída como 64. Por quê então?
Eu também tentei:
int a = 1<<2;
int b = 1<<3;
cout<<a + b;
O que fornece a saída conforme 12o esperado.
1<<2 + 1<<3é realmente 1<< 2+1 <<3. Não se deixe enganar pelo espaço em branco.
<<tem precedência mais baixa do que+,1<<2 + 1<<3=1<<(2 + 1)<<3