Я хочу, чтобы AlwaysPositive был присвоен положительный номер со всеми возможными значениями для lareValue1 и largeValue2 (это как минимум 1).
Следующая инструкция вызывает переполнение буфера:
int alwaysPositive = (largeValue1 + largeValue2) / 2;
Я знаю, что могу предотвратить это, вычтя и добавив:
int alwaysPositive = largeValue1 + ((largeValue2 - largeValue1) / 2);
Но в других языках программирования я могу использовать беззнаковое смещение для достижения цели:
int alwaysPositive3 = (largeValue1 + largeValue2) >>> 1;
Как я могу сделать это в C #?
Ответы ниже всех решают проблему. Вероятно, есть много способов сделать это, но у всех них (включая мои решения) есть одна общая черта: все они выглядят запутанными.