Просто используйте союз
Это как конвертировать из 1 long (32 бита) в 4 uint8 (8bit)
union convertor{
long input;
uint8_t output[4];
}
convertor entry;
entry.input=new Date().getTime()
//the value will be split into 4 unit8_t of entry.output
Вы можете сделать что-то подобное с unit16_t, здесь вам придется использовать 2 unit16_t вместо 4.
Затем вы можете объединить шорты вместе в том же самом регистре, где они принимаются, чтобы получить первоначальное значение времени
for(int i=0;i<4;i++)
entry.output[i]=data[i];
//get the original value from entry.intput as long