OR-ing bajty w C # daje int [duplikat]

To pytanie ma już tutaj odpowiedź:

Przesunięcie lewego bitu 255 (jako bajt) 7 odpowiedzi

Mam ten kod.

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

Kiedy próbuję się skompilować, otrzymuję:

Nie można niejawnie przekonwertować typu „int” na „bajt”. Istnieje jawna konwersja (czy brakuje Ci rzutu?)

Dlaczego to się dzieje? Nie powinienem dwa bajty dają bajt? Obie poniższe prace zapewniają, że każdy element jest bajtem.

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

questionAnswers(3)

yourAnswerToTheQuestion