Bytes OR-ing em c # dá int [duplicado]
Esta questão já tem uma resposta aqui:
Left bit shifting 255 (como um byte) 7 respostasEu tenho esse código.
byte dup = 0;
Encoding.ASCII.GetString(new byte[] { (0x80 | dup) });
Quando tento compilar, recebo:
Não é possível converter implicitamente o tipo 'int' para 'byte'. Existe uma conversão explícita (você está perdendo um elenco?)
Por que isso acontece? Não deve | dois bytes dão um byte? Ambos os trabalhos a seguir, assegurando que cada item seja um byte.
Encoding.ASCII.GetString(new byte[] { (dup) });
Encoding.ASCII.GetString(new byte[] { (0x80) });