Xom9ik

DecTo <-> ToDec

Jan 11th, 2018
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.36 KB | None | 0 0
  1.         static string decTo(int dec, int to)
  2.         {
  3.             string chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  4.             if (to < 2 || to > 36)
  5.                 return "";
  6.             int r;
  7.             string result = "";
  8.             while (dec >= to)
  9.             {
  10.                 r = dec % to;
  11.                 result = chars[r] + result;
  12.                 dec = dec / to;
  13.             }
  14.             result = chars[dec] + result;
  15.             return result;
  16.         }
  17.         static int toDec(string value, int to)
  18.         {
  19.             int dec = 0;
  20.             for (int i = 0, j = value.Length - 1; i < value.Length; i++, j--)
  21.             {
  22.                 if (value[i] == 'A') { dec += 10 * (int)Math.Pow(to, j); }
  23.                 else if (value[i] == 'B') { dec += 11 * (int)Math.Pow(to, j); }
  24.                 else if (value[i] == 'C') { dec += 12 * (int)Math.Pow(to, j); }
  25.                 else if (value[i] == 'D') { dec += 13 * (int)Math.Pow(to, j); }
  26.                 else if (value[i] == 'E') { dec += 14 * (int)Math.Pow(to, j); }
  27.                 else if (value[i] == 'F') { dec += 15 * (int)Math.Pow(to, j); }
  28.                 else if (value[i] == 'G') { dec += 16 * (int)Math.Pow(to, j); }
  29.                 else if (value[i] == 'H') { dec += 17 * (int)Math.Pow(to, j); }
  30.                 else if (value[i] == 'I') { dec += 18 * (int)Math.Pow(to, j); }
  31.                 else if (value[i] == 'J') { dec += 19 * (int)Math.Pow(to, j); }
  32.                 else if (value[i] == 'K') { dec += 20 * (int)Math.Pow(to, j); }
  33.                 else if (value[i] == 'L') { dec += 21 * (int)Math.Pow(to, j); }
  34.                 else if (value[i] == 'M') { dec += 22 * (int)Math.Pow(to, j); }
  35.                 else if (value[i] == 'N') { dec += 23 * (int)Math.Pow(to, j); }
  36.                 else if (value[i] == 'O') { dec += 24 * (int)Math.Pow(to, j); }
  37.                 else if (value[i] == 'P') { dec += 25 * (int)Math.Pow(to, j); }
  38.                 else if (value[i] == 'Q') { dec += 26 * (int)Math.Pow(to, j); }
  39.                 else if (value[i] == 'R') { dec += 27 * (int)Math.Pow(to, j); }
  40.                 else if (value[i] == 'S') { dec += 28 * (int)Math.Pow(to, j); }
  41.                 else if (value[i] == 'T') { dec += 29 * (int)Math.Pow(to, j); }
  42.                 else if (value[i] == 'U') { dec += 30 * (int)Math.Pow(to, j); }
  43.                 else if (value[i] == 'V') { dec += 31 * (int)Math.Pow(to, j); }
  44.                 else if (value[i] == 'W') { dec += 32 * (int)Math.Pow(to, j); }
  45.                 else if (value[i] == 'X') { dec += 33 * (int)Math.Pow(to, j); }
  46.                 else if (value[i] == 'Y') { dec += 34 * (int)Math.Pow(to, j); }
  47.                 else if (value[i] == 'Z') { dec += 35 * (int)Math.Pow(to, j); }
  48.                 else { dec += (value[i] - '0') * (int)Math.Pow(to, j); }
  49.             }
  50.             return dec;
  51.         }
  52.         static void Main(string[] args)
  53.         {
  54.             while (true)
  55.             {
  56.                 Console.WriteLine("From: ");
  57.                 int from = int.Parse(Console.ReadLine());
  58.                 Console.WriteLine("To: ");
  59.                 int to = int.Parse(Console.ReadLine());
  60.                 Console.WriteLine("Value: ");
  61.                 string value = Console.ReadLine();                
  62.                 Console.WriteLine(from + "->" + to + " " + decTo(Convert.ToInt32(toDec(value, from)), to));
  63.             }
  64.         }
Advertisement
Add Comment
Please, Sign In to add comment