public static ulong ToULong(BigInteger value) { var buff = BluffListTools.Create(value.ToByteArray()).FreeRange(0x00); ulong ret = ((ulong)buff[0] << 0) | ((ulong)buff[1] << 8) | ((ulong)buff[2] << 16) | ((ulong)buff[3] << 24) | ((ulong)buff[4] << 32) | ((ulong)buff[5] << 40) | ((ulong)buff[6] << 48) | ((ulong)buff[7] << 56); return(ret); }
public static string ToString(BigInteger value) { List <string> buff = new List <string>(); while (value.IsZero == false) { var bUnit = BluffListTools.Create((value % Consts.BI10P19).ToByteArray()).FreeRange(0x00); ulong unit = ((ulong)bUnit[0] << 0) | ((ulong)bUnit[1] << 8) | ((ulong)bUnit[2] << 16) | ((ulong)bUnit[3] << 24) | ((ulong)bUnit[4] << 32) | ((ulong)bUnit[5] << 40) | ((ulong)bUnit[6] << 48) | ((ulong)bUnit[7] << 56); buff.Add(unit.ToString("D19")); value /= Consts.UL10P19; } buff.Add("0"); buff.Reverse(); string ret = string.Join("", buff); { int index; for (index = 0; index + 1 < ret.Length && ret[index] == '0'; index++) { } ret = ret.Substring(index); } return(ret); }