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