[英]C# Biginteger for huge number of bits
我想知道是否有使用C#存儲大量數字的有效方法。 我想創建一個由960字節組成的數字,但BigInteger
無法容納它。 如有任何建議,我將不勝感激。
更新:我正在使用隨機字節生成器來填充BigInteger
構造函數所需的數組。 對於960字節數組,我的BigInteger
返回負數。
static void Main(string[] args)
{
var arr = new byte[960];
for (int i = 0; i != arr.Length; i++)
{
arr[i] = byte.MaxValue;
}
var big = new BigInteger(arr);
}
的效果很好,結果為-1
因為數字的表示形式是兩者的補碼 。 這意味着二進制中只有1
s的數字始終解析為-1,如您在本文中所見。
如果再增加一個“長度”並將數組的最后一個元素設置為零,則應該得到一個代表您的二進制數的正數(此字節不會對您造成傷害):
var arr = new byte[961];
arr[arr.Length-1] = 0;
var big2 = new BigInteger(arr);
但是您真的應該確定您的二進制數是什么格式以及BigInteger
正在“讀取”什么格式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.