1.byte[]轉BigInteger
a.高位字節在后
用new BigInteger(byte[])可以實現byte[]轉BigInteger,但是要注意字節順序:高位字節在后
所以在轉之前要把byte[]反轉一下
b.正整數
需要在byte[]后面加個字節[00]
源代碼
public BigInteger toBigInteger(byte[] v) { byte[] r = new byte[v.Length + 1]; Array.Copy(v.Reverse().ToArray(), 0, r, 0, v.Length); return new BigInteger(r); }
2.BigInteger轉byte[]
同樣要注意字節順序
public byte[] fromBigInteger(BigInteger v, int length) { byte[] r = v.ToByteArray().Reverse().ToArray(); if (r.Length < length) { byte[] t = new byte[length]; Array.Copy(r, 0, t, length - r.Length, r.Length); return t; } return r; }