зажим без знака

Как правильно зажимать неподписанные целые?

Например, скажем, у меня есть:

 unsigned int ui = 5U;

Теперь я хочу вычесть из него значение:

ui = Clamp(ui - MAGIC_VALUE, 0, 255);

Я хотел бы, чтобы пользовательский интерфейс содержал 0, если MAGIC_VALUE> = 5.

Тем не менее, я не могу просто вычесть MAGIC_VALUE в качестве выражения ui - MAGIC_VALUE обернутся к UINT_MAX если MAGIC_VALUE> 5 и в конечном итоге зажаты до верхнего предела, 255. Это противоположно тому, что я хочу!

Есть ли хитрость, чтобы справиться с этим?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]