Como separar int o long en bytes

Hola a todos: parece que veo luz al final del tunel,o no....He sido capaz de descomponer el dato enviarlo y volverlo a montar al otro lado pero en... I2c , no en Serial.
Vamos a ver el la parte del emisor:

unsigned int micontadorpulsos=1550; //la variable que aumento cada vez que recibo un pulso nuevo
byte byte_bajo;
byte byte_alto;
void setup() {

Serial.begin(9600);
}

void loop(){
byte_bajo=micontadorpulsos & 255;
byte_alto=(micontadorpulsos >> 8 ) & 255;

Serial.print(byte_bajo,BYTE);
Serial.print(byte_alto,BYTE);
delay (2000);
}

Pero tengo problemas a la hora de recepcionarlo.Esta linea me da error al compilar"mivariablerecepcion =((byte_alto << 8 )| (byte_bajo));"no acabo de dar con la solución.

Juan