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)); }
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()); }