Получить минимальное значение из 2 неподписанных int - PullRequest
0 голосов
/ 18 января 2012

Я пытаюсь реализовать функцию, которая должна возвращать минимальное значение из списка массивов без компараторов («==», «! =», «>», «<», «> =», «<=»), Но для упрощения я буду работать только с двумя переменными. Предположим, у меня есть два значения: число 5, объявленное как «a», и число 35, объявленное как «b», поэтому я нашел способ получить минимум два целых числа, но не два целых числа без знака, см .: </p>

b + ((a - b) & ((a - b) >> 31));

Кто-нибудь может мне помочь?

Ответы [ 2 ]

3 голосов
/ 18 января 2012

Дешевое и пошлое решение: если вы используете 32-разрядные целые числа без знака, вы можете преобразовать их в 64-разрядные целые числа со знаком и использовать код, который вы указали выше.

1 голос
/ 17 января 2013

Тип литья является дорогостоящей операцией. Мы хотим вычислить минимум с помощью побитовой операции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...