Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace TranslateToAnotherSystem
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("A number system is determined by the number of characters available for representing numbers.");
- Console.WriteLine("Choose a number system:");
- Console.WriteLine("1- 2nd \n2- 8th \n3- 10th \n4- 16th");
- Console.Write("Insert the option here: ");
- int system = Convert.ToInt32(Console.ReadLine());
- Console.Write("Enter a number: ");
- string s = Console.ReadLine();
- Console.WriteLine("Processing ... ");
- switch (system)
- {
- case 1:
- {
- Console.WriteLine("Binary system accepted. ");
- Console.WriteLine("Result8 is:"+FromTwoToEight(s));
- Console.WriteLine("Result10 is:" + FromNToTen(s,2));
- Console.WriteLine("Result16 is:" + FromTwoToSixteen(s));
- break;
- }
- case 2:
- {
- Console.WriteLine("You've chosen ");
- string result10 = Convert.ToString(FromNToTen(s, 8));
- string result2 = FromTenToTwo(result10);
- Console.WriteLine("Result2 is:" + result2);
- Console.WriteLine("Result10 is:" + result10);
- Console.WriteLine("Result16 is: " + FromTwoToSixteen(result2));
- break;
- }
- case 3:
- {
- Console.WriteLine("You've chosen deciminal system.\nPlease, wait for a minute, we are workin' on it. ");
- Console.WriteLine("Result2 is: " + Convert.ToString(FromNToTen(s, 2)));
- Console.WriteLine("Result8 is: "+ Convert.ToString(FromNToTen(s,8)));
- Console.WriteLine("Result16 is: "+ Convert.ToString(FromNToTen(s,16)));
- break;
- }
- case 4:
- {
- Console.WriteLine("You've chosen ");
- string result10 = Convert.ToString(FromNToTen(s, 16));
- string result2 = FromTenToTwo(result10);
- Console.WriteLine("Result2 is:" + result2);
- Console.WriteLine("Result8 is: " + FromTwoToEight(result2));
- Console.WriteLine("Result10 is:" + result10);
- break;
- }
- default:
- {
- Console.WriteLine("Invalid number, please,\nreboot the program and try again later.");
- break;
- }
- }
- }
- static string FromTwoToEight (string s)
- {
- string result = "";
- while (s.Length > 0)
- {
- string sub;
- if (s.Length / 3 > 0)
- {
- sub = s.Substring(s.Length - 3);
- s = s.Remove(s.Length - 3);
- }
- else
- {
- sub = s;
- if (s.Length == 1)
- sub = "00" + s;
- else
- sub = "0" + s;
- s = "";
- }
- switch (sub)
- {
- case "000":
- {
- result = "0"+ result;
- break;
- }
- case "001":
- {
- result = "1" + result;
- break;
- }
- case "010":
- {
- result = "2" + result;
- break;
- }
- case "011":
- {
- result = "3" + result;
- break;
- }
- case "100":
- {
- result = "4" + result;
- break;
- }
- case "101":
- {
- result = "5" + result;
- break;
- }
- case "110":
- {
- result = "6" + result;
- break;
- }
- case "111":
- {
- result = "7" + result;
- break;
- }
- }
- }
- return result;
- }
- static string FromTwoToSixteen (string s)
- {
- string result = "";
- while (s.Length > 0)
- {
- string sub;
- if (s.Length / 4 > 0)
- {
- sub = s.Substring(s.Length - 4);
- s = s.Remove(s.Length - 4);
- }
- else
- {
- sub = s;
- if (s.Length == 1)
- sub = "000" + s;
- else if (s.Length == 2)
- sub = "00" + s;
- else
- sub = "0" + s;
- s = "";
- }
- switch (sub)
- {
- case "0000":
- {
- result = "0" + result;
- break;
- }
- case "0001":
- {
- result = "1" + result;
- break;
- }
- case "0010":
- {
- result = "2" + result;
- break;
- }
- case "0011":
- {
- result = "3" + result;
- break;
- }
- case "0100":
- {
- result = "4" + result;
- break;
- }
- case "0101":
- {
- result = "5" + result;
- break;
- }
- case "0110":
- {
- result = "6" + result;
- break;
- }
- case "0111":
- {
- result = "7" + result;
- break;
- }
- case "1000":
- {
- result = "8" + result;
- break;
- }
- case "1001":
- {
- result = "9" + result;
- break;
- }
- case "1010":
- {
- result = "A" + result;
- break;
- }
- case "1011":
- {
- result = "B" + result;
- break;
- }
- case "1100":
- {
- result = "C" + result;
- break;
- }
- case "1101":
- {
- result = "D" + result;
- break;
- }
- case "1110":
- {
- result = "E" + result;
- break;
- }
- case "1111":
- {
- result = "F" + result;
- break;
- }
- }
- }
- return result;
- }
- static double FromNToTen (string s,int n) // FROM N TO 10
- {
- string result = "";
- double temp, sum = 0;
- double system = n;
- for (int i=0;i<s.Length;i++) //1 variant
- {
- temp = Convert.ToInt32(s[s.Length-i-1])-48;
- temp= temp* Math.Pow(n, i);
- sum += temp;
- }
- /*for(int i=0;i<s.Length;i++) //2 variant
- {
- if (s[s.Length-i-1]=='1')
- {
- sum += Math.Pow(2, i);
- }
- }*/
- return sum;
- }
- static string FromTenToTwo (string s)
- {
- string result = "";
- int number = Convert.ToInt32(s);
- while(number>0)
- {
- if (number % 2 == 0)
- result = "0"+ result;
- else
- result = "1" + result;
- number = number / 2;
- }
- return result;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement