Stupida conversione da byte a unsigned short

Ciao a tutti, ho il presentimento che questa domanda sia estremamente banale ma cercando e ricercando ho ancora più confusione di prima... quindi ho deciso di chiedere un'altra volta il vostro aiuto:

ho uno stupidissimo byte che contiene un numero da 0 a 255.
come faccio a convertirlo in un unsigned short?

grazie a tutti!

p.s. non esistono tipi di dati (che permettano di fare operazioni numeriche) più piccoli dello short vero?

Guarda che su Arduino short è a 16 bit quindi uguale a int
http://arduino.cc/en/Reference/Short

comunque:

byte y=255;
unsigned short x=(unsigned short)y;

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?

si a tutti e due.

grazie 1000 :slight_smile:

  1. Si, ma la conversione implicita la fa il compilatore e a volte è meglio che decida il programmatore e non il compilatore. Quindi meglio la conversione esplicita.

  2. Si, funziona perché anche se non direttamente supportate dal C, tutti le combinazioni sono inserite come #define nel file binary.h incluso in automatico dall'IDE.

chiarissimo :wink: