ИЛИ-байт в C # дает int [duplicate]

This question already has an answer here:

Left bit shifting 255 (as a byte) 7 answers

У меня есть этот код.

byte dup = 0;
Encoding.ASCII.GetString(new byte[] { (0x80 | dup) });

Когда я пытаюсь скомпилировать, я получаю:

Cannot implicitly convert type 'int' to 'byte'. An explicit conversion exists (are you missing a cast?)

Почему это происходит? Не должен | т | два байта дают байт? Обе следующие работы, гарантируя, что каждый элемент является байтом.

Encoding.ASCII.GetString(new byte[] { (dup) });
Encoding.ASCII.GetString(new byte[] { (0x80) });

Ответы на вопрос(3)

Ваш ответ на вопрос