Stupida conversione da byte a unsigned short

lol sapevo che era una fesseria XD

giacchè ci siamo faccio altre 2 domande pertinenti:

  1. si potrebbe fare anche
byte y=255;
unsigned short x=y;

perchè mi sembra che non mi dia errore in fase di compilazione...

  1. posso fare un un if binario su un byte in questo modo?
if (miobyte == B01010101) {}

o devo seguire altre strade?