Я видел много сообщений на эту тему, но они не совсем то, что мне нужно.
У меня есть массив символов, который содержит [8,2,A,8]
, но кодируется как [0x38, 0x32, 0x61, 0x38]
. Это ASCII-представления 82A8
. Мне нужно поместить эти значения в uint64_t
. Что я сейчас делаю, так это пошагово перебираю массив, добавляя значение к переменной, затем сдвигая переменную вправо на 4.
for(i=start; i<end; i++)
{
value |= testArray[i] - '0'
value = value << 4;
}
Проблема возникает в символе A
, когда я сдвигаю его, он отображается как 1
, а не A
. Мне нужен простой способ, которым я могу перебрать этот массив, взять закодированные в ascii значения и преобразовать их в целое число.
82A8 должно равняться 33448, но я не могу заставить это рассчитать правильно.