У меня есть массив символов, который действительно используется как массив байтов, а не для хранения текста. В массиве есть два конкретных байта, которые представляют числовое значение, которое мне нужно сохранить в значение типа 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 (т.е. положительные значения знаковых символов).