c - long int 太小

标签 c arrays int

我有一个长度为 28 的字符串,它代表基数 16 中的 1 个数字。

long num=strtol(str,NULL,16);

但它适用于小字符串而不是长字符串(它给了我一个否定的结果)。那么对于长字符串我该如何翻译呢?

//----------------------------

嗯,我认为只有一种方法可以不制造自行车。使用 GMP。如此简单的代码以及如何使用 GMP 将是很好的答案。

最佳答案

好吧,感谢@DavidSchwartz 在评论中帮助我。所以解决方案是使用 GMP 库:

mpz_t res;
mpz_init_set_str (res, str, 16);
gmp_fprintf(f1,"%s",mpz_get_str(NULL,10,res));
mpz_clear (res);

可能有问题,但它以某种方式起作用了。如果您发现错误,请告诉我,我会为以后的人改正。

关于c - long int 太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37402377/

相关文章:

C++ 排除非整数用户输入

c++ - 在 C++ 中连接和返回数组

java - 在多个内部循环中使用大量内存

c - scanf 和 printf 中的无效 int

c - 在某些字符串中填充前导零(0 个字符)

c - 如何使用 GNU C vector 扩展从 double 组加载/存储到 double 组?

c语言指针段错误

c - 特定情况下的段错误

python - 如何使用在对角线上具有特定值 K 的 numpy 创建单位矩阵

java - 使用递归如何保持局部变量更新