【发布时间】:2016-05-23 23:57:44
【问题描述】:
我有一个长度为 28 的字符串,它代表基数 16 中的 1 个数字。
long num=strtol(str,NULL,16);
但它适用于小字符串而不是长字符串(它给了我一个否定的结果)。那么对于长字符串我该如何翻译呢?
//----------------------------
嗯,我认为只有一种方法可以不制造自行车。使用 GMP。所以简单的代码以及如何使用 GMP 将是一个很好的答案。
【问题讨论】:
-
我认为 GCC 在 64 位机器上支持 128 位整数。
-
你到底想做什么?为什么不让它保持原样?
-
啊,所以你想将一个以 16 为底的大数转换为以 10 为底的相同数字。在这种情况下,我建议为此目的使用库。在 C 语言中,GMP 或 OpenSSL BIGNUM 可能是您的最佳选择。
-
@alex_mike 你为什么使用
long int?它不以 10 为基数存储数字表示,也不以 16 为基数存储数字表示。那么你用它做什么?我建议使用库类型,而不是long int。