C -преобразование массива unsigned int в unsigned char

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

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

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

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

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

Кроме того, как нам преобразовать unsigned char[2] обратно в unsigned int .

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

16
задан Jake 25 April 2012 в 16:26
поделиться