带2048位的C#BigInteger

带2048位的C#BigInteger,c#,rsa,biginteger,C#,Rsa,Biginteger,我正在创建一个C#控制台应用程序,以便查找素数并将其用于RSA编码。不幸的是,最新的标准(关于编码键)大约是2048位。我尝试使用biginteger,但我能计算的最大值是2^1023。是否可以使用较大的数字?没有上限(仅受可用内存或其底层字节数组的最大分配大小限制) 您的程序引发异常,因为方法Math.Pow(x,y)返回double,double不能表示2^1024或更大的数字 要创建更大的数字,请改用此方法 var big = BigInteger.Pow(2, 2048); 或者使用B

我正在创建一个C#控制台应用程序,以便查找素数并将其用于RSA编码。不幸的是,最新的标准(关于编码键)大约是2048位。我尝试使用biginteger,但我能计算的最大值是2^1023。是否可以使用较大的数字?

没有上限(仅受可用内存或其底层字节数组的最大分配大小限制)

您的程序引发异常,因为方法Math.Pow(x,y)返回double,double不能表示2^1024或更大的数字

要创建更大的数字,请改用此方法

var big = BigInteger.Pow(2, 2048);
或者使用BigInteger构造函数,它采用字节数组或BigInteger.Parse()方法。

没有上限(仅受可用内存或其底层字节数组的最大分配大小限制)

您的程序引发异常,因为方法Math.Pow(x,y)返回double,double不能表示2^1024或更大的数字

要创建更大的数字,请改用此方法

var big = BigInteger.Pow(2, 2048);

或者使用BigInteger构造函数,它采用字节数组或BigInteger.Parse()方法。

看看这里:您可以使用十进制等:谢谢J.McCabe,这可以帮助我处理未来的应用程序。但唯一的问题是在C应用程序中使用2048位长的数字。为什么最大值为2^1023?如果需要帮助,请显示代码。biginger big=newbiginger(Math.Pow(21023));控制台。WriteLine(大)//尝试使用一个更大的数字会产生溢出@jameskpolk这个答案可能会有一些启发:-看起来应该是创建随机的bye数组,直到你找到一个表示素数的数组为止看看这里:你可以使用decimal,等等:谢谢J.McCabe,这可以帮助我将来的应用程序。但唯一的问题是在C应用程序中使用2048位长的数字。为什么最大值为2^1023?如果需要帮助,请显示代码。biginger big=newbiginger(Math.Pow(21023));控制台。WriteLine(大)//尝试使用一个更大的数字会产生溢出@jameskpolk这个答案可能会有一些启发:-看起来应该做的是创建随机的bye数组,直到找到一个表示素数的数组为止