Exemple #1
0
        public static LexoInteger Parse(string strFull, ILexoNumeralSystem system)
        {
            var str  = strFull;
            var sign = 1;

            if (strFull.IndexOf(system.GetPositiveChar()) == 0)
            {
                str = strFull.Substring(1);
            }
            else if (strFull.IndexOf(system.GetNegativeChar()) == 0)
            {
                str  = strFull.Substring(1);
                sign = -1;
            }

            var mag      = new int[str.Length];
            var strIndex = mag.Length - 1;

            for (var magIndex = 0; strIndex >= 0; ++magIndex)
            {
                mag[magIndex] = system.ToDigit(str[strIndex]);
                --strIndex;
            }

            return(Make(system, sign, mag));
        }
Exemple #2
0
        public string Format()
        {
            if (IsZero())
            {
                return(Convert.ToString(_sys.ToChar(0)));
            }

            var sb   = new StringBuilder();
            var var2 = _mag;
            var var3 = var2.Length;

            for (var var4 = 0; var4 < var3; ++var4)
            {
                var digit = var2[var4];
                sb.Insert(0, _sys.ToChar(digit));
            }

            if (_sign == -1)
            {
                sb.Insert(0, _sys.GetNegativeChar());
            }

            return(sb.ToString());
        }