如何递归地将十六进制转换为十进制

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (73)

我需要做这个转换,但没有任何线索。有人能帮我吗?我需要这个来完成基本转换的计算器。我还需要函数返回一个整数转换为在我的其他函数中使用。

PS:抱歉我的英语不好。

我希望11F是287的整数。

提问于
用户回答回答于

如果它最多适合unsigned long long,你可以使用strtoul/ strtoull从stdlib.h将它从base-16字符串解析为整数。

然后,您只需在基数10中打印该整数即可。

#include <stdlib.h>
#include <stdio.h>
int main()
{
    char const *hex = "11F";
    char *endptr;
    unsigned long ul = strtoul(hex,&endptr,16);
    printf("%lu\n", ul);
}

扫码关注云+社区

领取腾讯云代金券