C - преобразование массива без знака в массив без знака

У меня есть целое число без знака (2 байта), и я хочу преобразовать его в тип без знака. Из моего поиска я обнаружил, что большинство людей рекомендуют делать следующее:

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

Правильный ли подход? Я спрашиваю, потому что unsigned char равен 1 байту, и мы преобразуем данные из 2 байтов в 1 байт.

Чтобы предотвратить потерю данных, я хочу создать массив без знака char [] и сохранить отдельные байты в массив. Я застрял в следующем:

<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>

Также,how would we convert the unsigned char[2] back to unsigned int.

Большое спасибо.

Ответы на вопрос(6)

Ваш ответ на вопрос