Tag: biginteger

我需要在C#中使用非常大的数组长度(大小)

public double[] result = new double[ ??? ]; 我存储结果,结果总数大于2,147,483,647,即max int32。 我尝试过biginteger,ulong等,但他们都给了我错误。 如何扩展可以存储> 50,147,483,647结果(双)的数组的大小? 谢谢…

BigInteger如何在内部存储值?

BigInteger类有一个返回字节数组的方法。 这是否表明该类在内部使用字节数组以存储数字? 知道这一点非常重要,以便选择正确的数据类型来操作二进制数据。 例如,如果类使用Int64数组,那么类似的数组可以更有效地通过任何调用函数来操作原始数据。 作为一个例子,我调用ToByteArray方法来遍历寻找特定二进制模式的字节。

记录非常大的数字

我正在处理BigInteger类,其数字大约为2,上升到10,000,000。 BigInteger Log函数现在是我算法中最昂贵的函数,我正在拼命寻找替代方案。 由于我只需要日志的组成部分,我遇到了这个答案 ,这在速度方面看起来很棒,但由于某些原因我没有得到准确的值。 我不关心小数部分,但我确实需要得到一个准确的积分部分,无论该值是浮动的还是天花板,只要我知道哪个。 这是我实现的function: public static double LogBase2 (System.Numerics.BigInteger number) { return (LogBase2(number.ToByteArray())); } public static double LogBase2 (byte [] bytes) { // Corrected based on [ronalchn’s] answer. return (System.Math.Log(bytes [bytes.Length – 1], 2) + ((bytes.Length – 1) * 8)); } 除角落情况外,这些值现在非常准确。 值7到7.99999,15到15.9999,23到23.9999 31到31.9999等返回-Infinity。 数字似乎围绕字节边界。 知道这里发生了什么吗? 例: LogBase2( 1081210289) = 30.009999999993600 != […]

C#随机BigInt生成器

我即将实施DSA算法 ,但是存在一个问题: 选择“p”,一个带L位的素数,其中512 <= L <= 1024,L是64的倍数 如何实现该数字的随机生成器? Int64具有“仅”63位长度。

将“大”hex数字(字符串格式)转换为十进制数字(字符串格式),不带BigInteger类

如何转换“大”hex数字(字符串格式): EC851A69B8ACD843164E10CFF70CF9E86DC2FEE3CF6F374B43C854E3342A2F1AC3E30C741CC41E679DF6D07CE6FA3A66083EC9B8C8BF3AF05D8BDBB0AA6CB3EF8C5BAA2A5E531BA9E28592F99E0FE4F95169A6C63F635D0197E325C5EC76219B907E4EBDCD401FB1986E4E3CA661FF73E7E2B8FD9988E753B7042B2BBCA76679 到十进制数字(字符串格式): 166089946137986168535368849184301740204613753693156360462575217560130904921953976324839782808018277000296027060873747803291797869684516494894741699267674246881622658654267131250470956587908385447044319923040838072975636163137212887824248575510341104029461758594855159174329892125993844566497176102668262139513 不使用BigInteger类(因为我的应用程序应该支持没有.NET Framework 4的机器)?

C#中任意大整数

如何在c#中实现这个python代码? Python代码: print(str(int(str(“e60f553e42aa44aebf1d6723b0be7541”), 16))) 结果: 305802052421002911840647389720929531201 但是在c#中我遇到了大数字问题。 你能帮助我吗? 我在python和c#中得到了不同的结果。 哪里可能是错误的?

如何在C#中使用bigint?

我致力于实现RSA密钥算法。 但我不能使用2048位的值。 我怎么用呢? 我想用大整数。

BigInteger解析八进制字符串?

在Java中,我能做到 //Parsing Octal String BigInteger b = new BigInteger(“16304103460644701340432043410021040424210140423204”,8); 然后按我的喜好格式化它 b.toString(2); //2 for binary b.toString(10); //10 for decimal b.toString(16); //16 for hexadecimal C#的BigInteger提供了上面显示的格式化function,但我似乎无法找到解析BIIIG(大于64位,无符号)八进制值的方法。

计算BigInteger的平方根(System.Numerics.BigInteger)

.NET 4.0为任意大整数提供System.Numerics.BigInteger类型。 我需要计算BigInteger平方根(或合理的近似值 – 例如,整数平方根)。 所以我没有必要重新实现轮子,有没有人有一个很好的扩展方法呢?

我的System.Numerics命名空间在哪里?

我正在使用Visual Studio 2010并尝试在C#程序中使用BigInteger类型。 这种类型应该在System.Numerics命名空间中可用,但我似乎没有在.Net 4.0框架中安装它。 当我在VS2010中输入“ using System.Numerics; ”时,“ Numerics ”下会出现一个红色下划线。 还有其他人有过这个问题吗? 如果是这样,你如何解决它? 我刚刚重新下载并重新安装(修复).Net 4.0框架,但这没有帮助。 我从来没有遇到过我写过的其他C#程序的任何问题,所以我想知道我错过了什么。