Вот мой код, который выполняет преобразование из шестнадцатеричного в десятичное. Шестнадцатеричные значения хранятся в массиве без знака:
int liIndex ;
long hexToDec ;
unsigned char length[4];
for (liIndex = 0; liIndex < 4 ; liIndex++)
{
length[liIndex]= (unsigned char) *content;
printf("\n Hex value is %.2x", length[liIndex]);
content++;
}
hexToDec = strtol(length, NULL, 16);
Каждый элемент массива содержит 1 байт информации, и я прочитал 4 байта. Когда я выполняю это, вот вывод, который я получаю:
Hex value is 00
Hex value is 00
Hex value is 00
Hex value is 01
Chunk length is 0
Может кто-нибудь, пожалуйста, помогите мне понять ошибку здесь. Десятичное значение Th должно быть равно 1 вместо 0.
С уважением,
Негр