Me deparei com o seguinte trecho de código
if( 0 != ( x ^ 0x1 ) )
encode( x, m );
O que x ^ 0x1significa isso ? Isso é alguma técnica padrão?
0 != (x ^ 1)→ xou ambos os lados por 1 → (0 ^ 1) != (x ^ 1 ^ 1)→ simplificar →1 != x
if (1 != x)é difícil escrever.
typede xnão é fornecido - portanto, não sabemos que esse é um número inteiro nesse problema marcado com C ++. Claro, se este é C ou xé um número inteiro, a resposta é fácil, mas isso não é um dado e operator ^existe a possibilidade de sobrecarga .