Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _07.SbaseToDbaseSystem
- {
- class Program
- {
- //Write a program to convert from any numeral system of given base s to any other numeral system of base d (2 ≤ s, d ≤ 16).
- static int sBase;// = VerifyInputBase();
- static string inputNumber; // = VerifyInputNumber();
- static int dBase;// = VerifyInputBase();
- static int resultDecimal;// = ConvertSbaseToDecimal();
- static string resultNumber;
- static int VerifyInputBase()
- {
- int input;
- while (true)
- {
- Console.Write("Please enter number for based system [2;16]: ");
- if (int.TryParse(Console.ReadLine(), out input) && (input >= 2 && input <= 16))
- {
- break;
- }
- else
- {
- Console.WriteLine("Invalid Input!Try Again!\n");
- }
- }
- Console.WriteLine();
- return input;
- }
- static string VerifyInputNumber()
- {
- string input = "";
- while (true)
- {
- Console.WriteLine("Please enter number in {0} based system", sBase);
- Console.Write("The input digits should be in range [0;{0}] ", sBase - 1);
- if (sBase > 10)
- {
- string letter = "";
- if (sBase == 11) letter = "A";
- else if (sBase == 12) letter = "B";
- else if (sBase == 13) letter = "C";
- else if (sBase == 14) letter = "D";
- else if (sBase == 15) letter = "E";
- else if (sBase == 16) letter = "F";
- Console.Write("and [A;{0}]: ", letter);
- }
- input = Console.ReadLine();
- int correct = 0;
- for (int i = 0; i < input.Length; i++)
- {
- if ((input[i] - '0' >= 0 && input[i] - '0' <= sBase - 1) || (input[i] - 'A' >= 0 && input[i] - 'A' < (sBase - 10)))
- {
- correct++;
- }
- }
- if (correct == input.Length)
- {
- break;
- }
- else
- {
- Console.WriteLine("Invalid enter!Try again!\n");
- }
- }
- Console.WriteLine();
- return input;
- }
- static int ConvertSbaseToDecimal()
- {
- int powerOfSbase = 1;
- int tempNimber = 0;
- for (int i = inputNumber.Length - 1; i >= 0; i--)
- {
- if (int.TryParse(inputNumber[i].ToString(), out tempNimber))
- {
- resultDecimal += tempNimber * powerOfSbase;
- powerOfSbase *= sBase;
- }
- else
- {
- resultDecimal += (inputNumber[i] - 'A' + 10) * powerOfSbase;
- powerOfSbase *= sBase;
- }
- }
- return resultDecimal;
- }
- static string ConvertDecimalToDbase()
- {
- while (resultDecimal > 0)
- {
- if (resultDecimal % dBase == 10)
- {
- resultNumber += "A";
- }
- else if (resultDecimal % dBase == 11)
- {
- resultNumber += "B";
- }
- else if (resultDecimal % dBase == 12)
- {
- resultNumber += "C";
- }
- else if (resultDecimal % dBase == 13)
- {
- resultNumber += "D";
- }
- else if (resultDecimal % dBase == 14)
- {
- resultNumber += "E";
- }
- else if (resultDecimal % dBase == 15)
- {
- resultNumber += "F";
- }
- else
- {
- resultNumber += (resultDecimal % dBase).ToString();
- }
- resultDecimal /= dBase;
- }
- return resultNumber;
- }
- static void PrintResult(string resultNumber)
- {
- for (int i = resultNumber.Length - 1; i >= 0; i--)
- {
- Console.Write(resultNumber[i]);
- }
- }
- static void Main()
- {
- sBase = VerifyInputBase();
- inputNumber = VerifyInputNumber();
- dBase = VerifyInputBase();
- resultDecimal = ConvertSbaseToDecimal();
- resultNumber = ConvertDecimalToDbase();
- Console.WriteLine();
- if (dBase == sBase)
- {
- Console.Write("{0} -> {0} ", inputNumber);
- }
- else
- {
- Console.WriteLine("The result is: ");
- Console.Write("{0} -> ", inputNumber);
- PrintResult(resultNumber);
- }
- Console.WriteLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement