Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }