我有一个长度为 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/