Я читал этот ответ , и упоминается, что этот код;
if (data[c] >= 128)
sum += data[c];
можно заменить этим;
int t = (data[c] - 128) >> 31;
sum += ~t & data[c];
Я с трудом усваиваю это. Может кто-нибудь объяснить, как побитовые операторы достигают того, что делает оператор if?