C - unsigned int à la conversion de tableau de caractères non signés

J'ai un unsigned int nombre (2 octets) et je veux le convertir en unsigned char type. De ma recherche, je trouve que la plupart des gens vous recommandons d'effectuer les opérations suivantes:

 unsigned int x;
 ...
 unsigned char ch = (unsigned char)x;

Est la bonne approche? Je demande parce que unsigned char est de 1 octet et nous avons coulé à partir de 2 octet de données 1 octet.

Pour prévenir toute perte de données, je veux créer un tableau de unsigned char[] et de sauvegarder les octets dans le tableau. Je suis coincé à l'adresse suivante:

 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] ??
 }

Aussi, comment convertir le unsigned char[2] retour à la unsigned int.

Merci beaucoup.

source d'informationauteur Jake