C#中字节的按位运算效率

时间:2014-05-06 05:23:05

标签: c# performance casting bit-manipulation redundancy

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;

0 个答案:

没有答案