Как я могу преобразовать char в беззнаковое int?

У меня есть массив символов, который действительно используется как массив байтов, а не для хранения текста. В массиве есть два конкретных байта, которые представляют числовое значение, которое мне нужно сохранить в значение типа int без знака. Код ниже объясняет настройку.

char* bytes = bytes[2];
bytes[0] = 0x0C; // For the sake of this example, I'm 
bytes[1] = 0x88; // assigning random values to the char array.

unsigned int val = ???; // This needs to be the actual numeric 
                        // value of the two bytes in the char array.  
                        // In other words, the value should equal 0x0C88;

Не могу понять, как это сделать. Я бы предположил, что это потребует некоторого преобразования и преобразования указателей, но я не могу заставить это работать. Как я могу достичь своей конечной цели?

ОБНОВЛЕНИЕ

Спасибо, Мартин Б., за быстрый ответ, однако это не работает. В частности, в моем случае два байта - это 0x00 и 0xbc . Очевидно, я хочу 0x000000bc . Но в своем беззнаковом int я получаю 0xffffffbc .

Код, который был опубликован Мартином, был моим настоящим исходным кодом и отлично работает, пока все байты меньше 128 (т.е. положительные значения знаковых символов).

11
задан RLH 4 May 2018 в 15:08
поделиться