【发布时间】:2011-05-25 06:55:18
【问题描述】:
我正在尝试实现加密功能。要求我的字符串输入长度可能为 10000 字节。因此,为了与 gmp 变量 (mpz_t) 一起使用,我必须将此字符串输入转换为 mpz_t 变量。
gmp (BigInteger) 库手册对此只字未提: 可以转换成mpz_t变量的字符串最大长度是多少?
mpz_set_str() 函数是我遇到的唯一一个。如果有人能对这个问题有所了解,将不胜感激。
【问题讨论】:
我正在尝试实现加密功能。要求我的字符串输入长度可能为 10000 字节。因此,为了与 gmp 变量 (mpz_t) 一起使用,我必须将此字符串输入转换为 mpz_t 变量。
gmp (BigInteger) 库手册对此只字未提: 可以转换成mpz_t变量的字符串最大长度是多少?
mpz_set_str() 函数是我遇到的唯一一个。如果有人能对这个问题有所了解,将不胜感激。
【问题讨论】:
如果库没有说什么,那么数组的长度有两个可能的限制。一是数组中的元素个数不能超过size_t可以表示的最大整数。另一个限制可能是由硬件施加的。
【讨论】:
SIZE_MAX。如果您的数组元素是long long,SIZE_MAX / 4 将是太多元素。
char *,那么它将是SIZE_MAX,因为sizeof(char) == 1。