C # XOR для двухбайтовых переменных не будет компилироваться без преобразования [duplicate]
На этот вопрос уже есть ответ здесь:
байт + байт = int… почему? 16 ответовПочему следующее вызывает ошибку времени компиляции: «Невозможно неявно преобразовать тип« int »в« byte »:
byte a = 25;
byte b = 60;
byte c = a ^ b;
Это имело бы смысл, если бы я использовал арифметический оператор, потому что результат a + b мог бы быть больше, чем может быть сохранен в одном байте.
Однако применять это к оператору XOR бессмысленно. XOR здесь это побитовая операция, которая никогда не может переполнить байт.
использование броска вокруг обоих операндов работает:
byte c = (byte)(a ^ b);