Эффективность побитовых операций над байтами в C#
Побитовые операторы в C# автоматически приводятся к int. Например:
byte a = 0x0f;
byte b = 0xf0;
byte c = a & b;
Не компилируется и выдает следующую ошибку. Невозможно неявно преобразовать тип 'int' в 'byte'. Существует явное преобразование (вам не хватает приведения?)
Чтобы сделать его счастливым, вы должны разыграть результат a & b
byte c = (byte)(a & b);
Хотя это очень раздражает и довольно избыточно - сначала автоматически приводить байты к целым, а затем нужно вручную приводить их обратно, это необходимо, потому что кто-то решил оставить побитовые операторы в байтах вне спецификаций C#.
Влияют ли эти дополнительные броски на эффективность или они сводятся к нулю?
Будет ли просто использование большего количества памяти и оставление результата в виде int обеспечивать какой-либо выигрыш в производительности?
int c = a & b;