请解释这个c#代码

时间:2016-04-03 21:08:25

标签: c#

您能解释一下这段代码中发生了什么(如何在代码中的注释中乘以4):

__defineGetter__

有没有更好或更清洁的方法来做到这一点?或者这是最佳的?

此外,此(或此类型)代码有用的任何实际情况?

感谢。

2 个答案:

答案 0 :(得分:2)

?是三元运算符,实际上是一个可返回的if / else语句

if (i>0)
    return i multiplied by four (bitshift to the left two)
else
    return negative i multiplied by four

~x+1表示两个赞美并加一个,实际上是一个负数。这里的x恰好是i<<2

对我来说,它看起来像是一些优化的类C代码。

对于#2,您指的是逻辑OR运算符吗?  a || b=c
由于首先评估a,如果a为真,则总表达式为真,因此b=c仅评估为a为假。这实际上意味着if not a: b=c

答案 1 :(得分:1)

如果i是肯定的:

它会将位向左移动两位,实际上与乘以4相同。

如果i不是正数(是负数或零),它将再次乘以4,然后否定所有位(这是~所做的)并加1(由于{{3 - 这是正数的必要条件)。