关于c#:为什么xor’ing两个ushort值不返回ushort?

Why does xor'ing two ushort values not return a ushort?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
C# XOR on two byte variables will not compile without a cast

为什么在这个C代码中会出现编译错误?

1
2
3
4
5
6
void test()
{
   ushort a = 0;
   ushort b = 0;
   ushort c = a ^ b; //ERROR
}

错误CS0266:无法将类型"int"隐式转换为"ushort"。存在显式转换(是否缺少强制转换?)


看看这个:两字节变量的c xor在没有强制转换的情况下无法编译。

基本上,对于位运算符,任何小于int的操作数都会自动转换为int。