Example #1
0
        public void Convert()
        {
            if (bc.IsValidRadix(mInputBase) && bc.IsValidRadix(mOutputBase))
            {
                if (bc.IsValidString(InputString, mInputBase))
                {
                    try
                    {
                        InputNumber  = NumberConverter.ToBase(InputString, mInputBase, mInputBase);
                        OutputNumber = NumberConverter.ToBase(InputNumber.DecimalValue, mOutputBase);

                        mHistory.AddEntry(InputNumber, OutputNumber);

                        InputString  = InputNumber.ValueInBase;
                        OutputString = OutputNumber.ValueInBase;
                        ErrorMessage = "";
                    }
                    catch (System.OverflowException)
                    {
                        ErrorMessage = "The input number is to large. Max value in base " + InputBase + ": " + NumberConverter.MaxValueForBase(mInputBase);
                        InputNumber  = NumberConverter.ToBase(0, 10);
                        OutputNumber = NumberConverter.ToBase(0, 10);
                        InputString  = InputNumber.ValueInBase;
                        OutputString = OutputNumber.ValueInBase;
                    }
                }
                else
                {
                    ErrorMessage = "The number does not match it's given radix";
                }
            }
            else
            {
                ErrorMessage = "Radix must be between 2 and 99";
            }
        }