我已经看过很多帖子,但它们并不是我需要的。
我有一个char数组,其中包含[8,2,A,8]
但编码为[0x38, 0x32, 0x61, 0x38]
。这些是82A8
的ASCII表示。我需要将这些值放入uint64_t
。我目前正在做的是逐步遍历数组,将值添加到变量,然后将变量右移4。
for(i=start; i<end; i++)
{
value |= testArray[i] - '0'
value = value << 4;
}
当我将其转移到A
而不是1
时,问题出现在角色A
上。我需要一种简单的方法,我可以遍历这个数组并获取ascii编码值并将它们转换为整数。
82A8应该等于33448,但我无法正确计算。
答案 0 :(得分:1)
正确的方法是:
char digits[]={'8','2','A','8'};
int value= 0;
for(i=0; i<4; i++)
{
if (digits[i]>='A')
value = value*16 + digits[i] - 'A' + 10;
else
value = value*16 + digits[i] - '0';
}