Shifting out 19 bits over SPI.

I need to select an address on an SRAM chip over three chained shift registers that is 19 bits and when I was previously just using normal digitalWrite I just done each bit individually followed by a clock from MSB to LSB.

I tried SPI.transfer(bit) with each single bit but it seems quite slow so I would like to transmit at the byte level.

So say address 1 (long value of 1) would be transmitted as as 24 bits with 5 extra bits padded on to the MSB

00000000 00000000 0000001

which would result in shifting to result in 00000000 00000000 001 as the other padded MSBs would be shifted out.

Tried some examples, but the bitwise stuff is getting a bit of a headache.