【发布时间】:2012-04-19 12:56:45
【问题描述】:
所以我看到这个问题已经被问过了,但是答案有点模糊和无益。好的,我只需要使用 "& ^ ~ ! + | >> 来实现一个 c 表达式
表达式需要类似于:a ?乙:c
所以,据我所知,表达式需要类似于:
return (a & b) | (~a & c)
这在 a = 0 时有效,因为将其与 b 相加将给出零,然后 or 表达式将返回右侧,(~a & c) 之所以有效,是因为 ~0 给出了全一,并且将 c 与全一相加返回 c .
但是,当 a > 0 时,这不起作用。有人可以尝试解释这是为什么,或者如何解决它吗?
【问题讨论】:
标签: c conditional bit-manipulation bitwise-operators