C将字符数组转换为整数

时间:2018-04-26 14:56:06

标签: c char int ascii

我已经看过很多帖子,但它们并不是我需要的。

我有一个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,但我无法正确计算。

1 个答案:

答案 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';
}