变量'format‘是一个字节,javascript如下所示:
if( format & 2 ) // have normals
{
var normals = new Vector3[vertCount];
ReadVector3ArrayBytes (normals, buf);
mesh.normals = normals;
}资料来源:http://wiki.unity3d.com/index.php?title=MeshSerializer2
C#抱怨这一点,并表示它不能隐式地将int转换为bool。
format &2实现了什么?在C#中我应该检查哪些内容来评估它是否是真的?另外,一些关于这一问题的进一步阅读材料也会有所帮助。
发布于 2014-10-12 12:58:10
Javascript中的&操作符是按位和操作符(ref:位运算符)。
按位使用2的操作将给出值0或2,这取决于第二个位是在另一个操作数中设置的。示例:
format 01101010
2 00000010
& ----------------
= 00000010在Javascript中,您可以使用任何值作为if语句中的条件,并且它将被解释为布尔值。对于数值,任何非零值(而不是NaN)值都将被视为true。
在C#中,&运算符在应用于整数时也充当按位和运算符的作用。不存在对布尔值的自动转换,因此必须检查按位操作的结果才能获得条件:
if ((format & 2) != 0)发布于 2014-10-12 12:38:28
我认为这是一个按位运算,检查设置为第二个字节.(2不是位数,只有10是基2中的2)。
if((format & 2) != 0)
{
..
}或
if((format & 2) == 2)
{
..
}发布于 2014-10-12 12:43:33
&用于按位进行and操作。
|用于按位进行or操作。
您只能在整数上使用这些。
让你理解它的简单例子:
var r : int;
r = Random.Range(0, 1000);
if(r & 1)
// Odd.
else
// Even.https://stackoverflow.com/questions/26325142
复制相似问题