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 12
o 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