Czytałem this answer i wspomniano, że ten kod;W jaki sposób instrukcja if i operacje bitowe są takie same w tym przykładzie?
if (data[c] >= 128)
sum += data[c];
można zastąpić tym;
int t = (data[c] - 128) >> 31;
sum += ~t & data[c];
Trudno mi to zrozumieć. Czy ktoś może wyjaśnić, w jaki sposób operatorzy bitowe osiągają to, co robi instrukcja?