C#中的按位运算符会自动转换为int。 例如:
byte a = 0x0f;
byte b = 0xf0;
byte c = a & b;
不会编译并呈现以下错误。 无法隐式转换类型' int'到'字节'。存在显式转换(您是否错过了演员?)
为了让它快乐,你必须投射一个&的结果。 B'/ P>
byte c = (byte)(a & b);
虽然首先自动将字节转换为int是非常恼人且相当多余的,但是需要手动转换它们是必需的,因为有人决定在C# specifications之外的字节上留下按位运算符。
这些额外的演员阵容是否会对效率产生影响,还是会被归结为什么?
只是使用更多内存并将结果保留为int可以提供任何性能优势吗?
int c = a & b;