C - unsigned int para conversão de matriz de caracteres não assinados

Eu tenho um número int não assinado (2 bytes) e quero convertê-lo para o tipo char não assinado. Na minha pesquisa, descubro que a maioria das pessoas recomenda fazer o seguinte:

<code> unsigned int x;
 ...
 unsigned char ch = (unsigned char)x;
</code>

A abordagem correta? Eu pergunto porque o unsigned char é de 1 byte e nós passamos de dados de 2 bytes para 1 byte.

Para evitar qualquer perda de dados, desejo criar uma matriz de unsigned char [] e salvar os bytes individuais na matriz. Eu estou preso no seguinte:

<code> unsigned char ch[2];
 unsigned int num = 272;

 for(i=0; i<2; i++){
      // how should the individual bytes from num be saved in ch[0] and ch[1] ??
 }
</code>

Além disso,como converteríamos o unsigned char [2] de volta para unsigned int.

Muito obrigado.

questionAnswers(6)

yourAnswerToTheQuestion