Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Angel Georgiev <[email protected]>
- using System;
- using System.Text;
- using System.Collections.Generic;
- namespace Parser
- {
- class Program
- {
- static string input;
- static void Main(string[] args)
- {
- Console.WriteLine("Welcome! Input a number to convert it to binary. Type Q to quit. ");
- do
- {
- Console.WriteLine("What number should we convert?");
- input = Console.ReadLine();
- string number = input;
- number = number.Trim();
- Console.WriteLine("What system?");
- input = Console.ReadLine();
- int system = 0;
- if (int.TryParse(input, out system))
- {
- if (Validate(number, system))
- {
- Console.WriteLine("The converted number is : " + ToDecimal(number, system));
- continue;
- }
- }
- Console.WriteLine("Invalid input!");
- } while (input != "q");
- }
- static bool Validate(string number, int systemBase)
- {
- for (int i = 0; i < number.Length; i++)
- {
- int cast;
- if (int.TryParse(number[i].ToString(), out cast))
- {
- if (cast >= systemBase)
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- }
- return true;
- }
- static string ToDecimal(string number, int systemBase)
- {
- int result = 0;
- for (int i = 0; i < number.Length; i++)
- {
- int element = int.Parse(number[number.Length - i - 1].ToString());
- for (int j = 0; j < i; j++)
- {
- element *= systemBase;
- }
- result += element;
- }
- return result.ToString();
- }
- static string FromDecimal(int number, int systemBase)
- {
- List<char> result = new List<char>();
- do
- {
- result.Insert(0, (number % systemBase).ToString()[0]);
- number /= systemBase;
- } while (number != 0);
- return CollectionToString(result);
- }
- static string CollectionToString(IReadOnlyList<char> list)
- {
- StringBuilder text = new StringBuilder();
- foreach (char symbol in list)
- {
- text.Append(symbol);
- }
- return list.ToString();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement