Advertisement
geniusvil

NumeralSystems-07

Dec 19th, 2013
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _07.SbaseToDbaseSystem
  8. {
  9. class Program
  10. {
  11. //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).
  12.  
  13. static int sBase;// = VerifyInputBase();
  14. static string inputNumber; // = VerifyInputNumber();
  15. static int dBase;// = VerifyInputBase();
  16. static int resultDecimal;// = ConvertSbaseToDecimal();
  17. static string resultNumber;
  18.  
  19. static int VerifyInputBase()
  20. {
  21. int input;
  22. while (true)
  23. {
  24. Console.Write("Please enter number for based system [2;16]: ");
  25. if (int.TryParse(Console.ReadLine(), out input) && (input >= 2 && input <= 16))
  26. {
  27. break;
  28. }
  29. else
  30. {
  31. Console.WriteLine("Invalid Input!Try Again!\n");
  32. }
  33. }
  34. Console.WriteLine();
  35. return input;
  36. }
  37.  
  38. static string VerifyInputNumber()
  39. {
  40. string input = "";
  41. while (true)
  42. {
  43. Console.WriteLine("Please enter number in {0} based system", sBase);
  44. Console.Write("The input digits should be in range [0;{0}] ", sBase - 1);
  45. if (sBase > 10)
  46. {
  47. string letter = "";
  48. if (sBase == 11) letter = "A";
  49. else if (sBase == 12) letter = "B";
  50. else if (sBase == 13) letter = "C";
  51. else if (sBase == 14) letter = "D";
  52. else if (sBase == 15) letter = "E";
  53. else if (sBase == 16) letter = "F";
  54. Console.Write("and [A;{0}]: ", letter);
  55. }
  56. input = Console.ReadLine();
  57.  
  58. int correct = 0;
  59. for (int i = 0; i < input.Length; i++)
  60. {
  61. if ((input[i] - '0' >= 0 && input[i] - '0' <= sBase - 1) || (input[i] - 'A' >= 0 && input[i] - 'A' < (sBase - 10)))
  62. {
  63. correct++;
  64. }
  65. }
  66. if (correct == input.Length)
  67. {
  68. break;
  69. }
  70. else
  71. {
  72. Console.WriteLine("Invalid enter!Try again!\n");
  73. }
  74. }
  75. Console.WriteLine();
  76. return input;
  77. }
  78.  
  79. static int ConvertSbaseToDecimal()
  80. {
  81. int powerOfSbase = 1;
  82. int tempNimber = 0;
  83. for (int i = inputNumber.Length - 1; i >= 0; i--)
  84. {
  85. if (int.TryParse(inputNumber[i].ToString(), out tempNimber))
  86. {
  87. resultDecimal += tempNimber * powerOfSbase;
  88. powerOfSbase *= sBase;
  89. }
  90. else
  91. {
  92. resultDecimal += (inputNumber[i] - 'A' + 10) * powerOfSbase;
  93. powerOfSbase *= sBase;
  94. }
  95. }
  96. return resultDecimal;
  97. }
  98.  
  99. static string ConvertDecimalToDbase()
  100. {
  101. while (resultDecimal > 0)
  102. {
  103. if (resultDecimal % dBase == 10)
  104. {
  105. resultNumber += "A";
  106. }
  107. else if (resultDecimal % dBase == 11)
  108. {
  109. resultNumber += "B";
  110. }
  111. else if (resultDecimal % dBase == 12)
  112. {
  113. resultNumber += "C";
  114. }
  115. else if (resultDecimal % dBase == 13)
  116. {
  117. resultNumber += "D";
  118. }
  119. else if (resultDecimal % dBase == 14)
  120. {
  121. resultNumber += "E";
  122. }
  123. else if (resultDecimal % dBase == 15)
  124. {
  125. resultNumber += "F";
  126. }
  127. else
  128. {
  129. resultNumber += (resultDecimal % dBase).ToString();
  130. }
  131. resultDecimal /= dBase;
  132. }
  133. return resultNumber;
  134. }
  135.  
  136. static void PrintResult(string resultNumber)
  137. {
  138. for (int i = resultNumber.Length - 1; i >= 0; i--)
  139. {
  140. Console.Write(resultNumber[i]);
  141. }
  142. }
  143.  
  144. static void Main()
  145. {
  146. sBase = VerifyInputBase();
  147. inputNumber = VerifyInputNumber();
  148. dBase = VerifyInputBase();
  149. resultDecimal = ConvertSbaseToDecimal();
  150. resultNumber = ConvertDecimalToDbase();
  151. Console.WriteLine();
  152. if (dBase == sBase)
  153. {
  154. Console.Write("{0} -> {0} ", inputNumber);
  155. }
  156. else
  157. {
  158. Console.WriteLine("The result is: ");
  159. Console.Write("{0} -> ", inputNumber);
  160. PrintResult(resultNumber);
  161. }
  162. Console.WriteLine();
  163. }
  164. }
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement