By-ing bytes en C # da int [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Desplazamiento del bit izquierdo 255 (como un byte) 7 respuestas

Tengo este codigo

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

Cuando intento compilar obtengo:

No se puede convertir implícitamente el tipo 'int' a 'byte'. Existe una conversión explícita (¿falta un elenco?)

¿Por qué pasó esto? No debería | dos bytes dan un byte? Ambos de los siguientes trabajos, asegurando que cada elemento es un byte.

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

Respuestas a la pregunta(3)

Su respuesta a la pregunta