Итак, я вижу, что этот вопрос уже задавался, однако ответы были немного расплывчатыми и бесполезный. Хорошо, мне нужно реализовать выражение c, используя только "& ^ ~! + | >> <<"
Выражение должно напоминать:a ? b :c
Итак, из того, что я смог сказать, выражение должно выглядеть примерно так:
return (a & b) | (~a & c)
Это работает, когда a = 0, потому что сложение его с b даст ноль, а затем или выражение вернет правую часть, (~a & c)
что работает, потому что ~0 дает все единицы, а объединение c со всеми единицами возвращает c.
Однако это не работает, когда a > 0. Может ли кто-нибудь объяснить, почему это так или как это исправить?