Ciao a tutti,

Ho un problema ad ottenere il corrispondente valore signed short partendo da 2byte i cui bit significativi sono 10 o 14.
Questi valori li prendo da una scheda esterna collegata tramite seriale/usb.

Ad esempio, se acquisisco questi due byte:

00000011 11111111 (2^15 .. 2^0)

ed i bit significativi sono 10 (il decimo è il bit di segno), dovrei interpretarlo come -1 e non come 1023.
Chiaramente non ha senso spostare il solo bit di segno (copio il 10mo al 16mo posto) perchè in questo caso

00000011 11111111 (10bit) => 11111111 11111111 (16bit)

Qualcuno sa dirmi che formula posso usare per ottenere il corrispondente intero a 16bit partendo da un intero, con segno, ad x bit ?

Grazie