Estaba leyendo this answer y se menciona que este código;¿Cómo es la instrucción if y las operaciones bit a bit iguales en este ejemplo?
if (data[c] >= 128)
sum += data[c];
se puede reemplazar con esta;
int t = (data[c] - 128) >> 31;
sum += ~t & data[c];
Tengo dificultades para captar esto. ¿Puede alguien explicar cómo los operadores bit a bit logran lo que si la declaración lo hace?