Integer mit 24Bit über SPI versenden. Geht es nur Byteweise?

Versuche gerade einen Integer mit 24Bit über SPI zu versenden. Scheinbar geht es nur mit den 8Bit (1Byte) Paketen. Wie teile ich den Integer in 8Bit Teile um sie zu versenden?

Beispiel:

...
int data = 0x000110  // Ist gleich 272 dezimal

SPI.transfer(data);
...

Hier werden nur die ersten 8 Bits versendet.

Wie kann ich den Integer "data" in drei Einzelteile aufteilen um sie per SPI zu versenden?

int data = 0x102030;
for(int i=0;i<3;i++) {
    SPI.transfer(data & 0x0000ff);
    data = data >> 8;
 }

Wäre ein einfacher Ansatz. Dabei wird der Wert in Data aber "zerstört".

Warum nicht

int data = 0x102030;
for(int i=0;i<3;i++) {
    SPI.transfer((uint8_t)(data >> (i<<3)));    
 }

oder

int data = 0x102030;
SPI.transfer((uint8_t)(data));    
SPI.transfer((uint8_t)(data >> 8));    
SPI.transfer((uint8_t)(data >> 16));

Danke an euch, werde gleich ausprobieren.