Como separar int o long en bytes

Lo del 3 en el array se me ha debido colar, como he estado inicializando el array de varias maneras...pero gracias por la aclaración que siempre viene bien! XD
Acabo de hacer lo siguiente para ver si consigo verlos al imprimirlos pero nada, creo que no me queda claro el concepto...

También lo he leído con el RealTerm y me saca 02,34,30,30 en HEX y debería sacar 31,32,33,34 no?

byte dato[4];
int datos=1234;

void setup(){ 
  Serial.begin(115200);

  dato[0]=(datos & 0xFF) + 48;
  dato[1]=((datos >> 8) & 0xFF) + 48;
  dato[2]=((datos >> 16) & 0xFF) + 48;
  dato[3]=((datos >> 24) & 0xFF) + 48;
  
  Serial.println(dato[0]);
  Serial.println(dato[1]);
  Serial.println(dato[2]);
  Serial.println(dato[3]);
} 

void loop(){
}