【发布时间】:2010-09-26 16:03:26
【问题描述】:
条件运算符如何用位运算符表示?
这是一个作业问题,我必须仅使用按位运算来实现条件运算符。如果允许if 语句会很简单,但它必须是严格的位运算符。
只能使用运算符!、~、&、^、|、+、>> 和<<。不能使用if 语句或循环。
该函数采用三个整数,其工作方式与普通条件运算符一样。第一个参数被评估为零或非零。如果第一个参数为零,则返回第二个参数。如果第一个参数不为零,则返回第三个参数。
我希望有一个简单的算法来解决这个问题。任何关于从哪里开始的想法都会有很大帮助。
【问题讨论】:
-
您能说得更具体些吗?这听起来像是一个措辞不好的家庭作业问题。我不知道用另一个操作员“代表”一个操作员是什么意思。
-
在 C 术语中,术语 条件运算符 表示三元
?:运算符。该运算符不是也不能由位运算符以任何有意义的方式表示。如前所述,您的问题几乎没有(如果有的话)意义。请澄清一下。 -
您的运算符的结果应该如何取决于第一个 int?只是简单的零/非零检查,还是其他?
-
零/非零检查是我需要做的,但我不能使用任何 if 语句。
-
抱歉,“不能使用 if 语句”和“只能使用按位运算符”之间有天壤之别。那么,它是什么?
标签: c bit-manipulation