Stavo leggendo this answer e si dice che questo codice;In che modo le operazioni if-statement e bit a bit sono le stesse in questo esempio?
if (data[c] >= 128)
sum += data[c];
può essere sostituito con questo;
int t = (data[c] - 128) >> 31;
sum += ~t & data[c];
Ho difficoltà a cogliere questo. Qualcuno può spiegare in che modo gli operatori bit a bit ottengono ciò che succede se l'istruzione fa?