Эффективность побитовых операций над байтами в 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;

0 ответов

Другие вопросы по тегам