Aiuto per capire uno shift

Qualcuno potrebbe darmi una mano a capire a livello di codice, cosa viene fatto in questa operazione?

int magRaw[3];
byte buff[6]; // è la variabile a cui assegno le 'risposte' di un sensore i2c buff[i]=Wire.read();


magRaw[0] = (((int)buff[0]) << 8) | buff[1];  //-Y body reference axis (aligned with MPU)

Si tratta di una velocizzazione del composizione dell'int per mezzo dei due byte LSB e MSB?
Cioè con lo shift di otto 'crea' il byte più significativo, lo rende un intero e ci somma quello meno significativo?

Praticamente si. L'operazione << sposta i bit a sinistra di 8 posizioni e lo mette in un int. Perciò i primi 8 bit a destra sono a 0.
Dopo somma usando ! (OR tra bit) in questo int gli altri 8 bit, che andranno a sommarsi negli 8 bit a destra che erano a 0.

mastraa:
Si tratta di una velocizzazione del composizione dell'int per mezzo dei due byte LSB e MSB?

Sì, col metodo che ti ha illustrato nid.