Possible Duplicate:
C# XOR on two byte variables will not compile without a cast
Why do I get a compile error in this C# code?
void test()
{
ushort a = 0;
ushort b = 0;
ushort c = a ^ b; //ERROR
}
error CS0266: Cannot implicitly convert type 'int' to 'ushort'. An explicit conversion exists (are you missing a cast?)
Take a look at this: C# XOR on two byte variables will not compile without a cast
Basically, with bit operators, any operand smaller than an int is automatically converted up to an int.