Мне нужна программа для получения меньшего из двух чисел, и мне интересно, если использовать стандарт "если x меньше y"
int a, b, low;
if (a < b) low = a;
else low = b;
более или менее эффективен, чем это:
int a, b, low;
low = b + ((a - b) & ((a - b) >> 31));
(или изменение размещения int delta = a - b
в верхней части и повторное размещение экземпляров a - b
с этим).
Мне просто интересно, какой из них был бы более эффективным (или если разница слишком миниатюрная, чтобы быть релевантной) и эффективность операторов if-else в сравнении с альтернативами вообще.