2011-05-25 56 views
1

我想實現一個加密函數。要求我的字符串輸入長度可能爲10000個字節。所以爲了與gmp變量(mpz_t)一起使用,我必須將此字符串輸入轉換爲mpz_t變量。輸入到gmp整數的字符串的最大長度?

gmp(BigInteger)庫手冊對此沒有任何說明: 可以轉換爲mpz_t變量的字符串的最大長度是多少?

mpz_set_str()函數是我遇到的唯一一個函數。如果有人能夠解釋這個問題,我們將不勝感激。

回答

2

如果庫中沒有任何內容說明,則數組長度有兩種可能的限制。一個是數組中元素的數量不能超過size_t可表示的最大整數。另一個限制可以由硬件強加。

+0

從技術上講,數組的大小不能超過'SIZE_MAX'。如果你的數組元素是'long long','SIZE_MAX/4'將會是太多元素。 – 2011-05-25 07:12:34

+0

@Chris Lutz哦,我站好了。由於問題是關於庫可以處理的字符串的最大長度,所以我假設了一些事情。 – vpit3833 2011-05-25 07:17:23

+0

我想如果它是'char *',那麼它會是'SIZE_MAX',因爲sizeof(char)== 1'。 – 2011-05-25 07:19:53