【发布时间】:2015-11-24 20:31:10
【问题描述】:
鉴于此语句是一个逻辑运算
((a > 5) && (b > 4))
而且这个语句是按位运算
((a > 5) & (b > 4))
以上两种说法不等价。
因为(a > 5)是{0,1}的一个元素
那么,为什么我们需要logical operators & bitwise-operation?
编辑:感谢所有反馈。关于逻辑运算符的短路行为,我实际上不希望这种行为 - 我正在为 GPU 编写代码,其中分支会降低性能:短路会导致两个分支而不是代码中的一个。
对于 C 中的数值比较,在不需要短路的情况下,逻辑和按位似乎具有相同的行为。就我而言,按位运算比逻辑运算要快。
对于没有将这些细节放在原始帖子中,我深表歉意。
【问题讨论】:
标签: c++ c bitwise-operators