Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.61 KB | None | 0 0
  1. using System;
  2.  
  3. namespace TranslateToAnotherSystem
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. Console.WriteLine("A number system is determined by the number of characters available for representing numbers.");
  10. Console.WriteLine("Choose a number system:");
  11. Console.WriteLine("1- 2nd \n2- 8th \n3- 10th \n4- 16th");
  12. Console.Write("Insert the option here: ");
  13. int system = Convert.ToInt32(Console.ReadLine());
  14. Console.Write("Enter a number: ");
  15. string s = Console.ReadLine();
  16. Console.WriteLine("Processing ... ");
  17. switch (system)
  18. {
  19. case 1:
  20. {
  21. Console.WriteLine("Binary system accepted. ");
  22. Console.WriteLine("Result8 is:"+FromTwoToEight(s));
  23. Console.WriteLine("Result10 is:" + FromNToTen(s,2));
  24. Console.WriteLine("Result16 is:" + FromTwoToSixteen(s));
  25. break;
  26. }
  27. case 2:
  28. {
  29. Console.WriteLine("You've chosen ");
  30. string result10 = Convert.ToString(FromNToTen(s, 8));
  31. string result2 = FromTenToTwo(result10);
  32. Console.WriteLine("Result2 is:" + result2);
  33. Console.WriteLine("Result10 is:" + result10);
  34. Console.WriteLine("Result16 is: " + FromTwoToSixteen(result2));
  35. break;
  36. }
  37. case 3:
  38. {
  39. Console.WriteLine("You've chosen deciminal system.\nPlease, wait for a minute, we are workin' on it. ");
  40. Console.WriteLine("Result2 is: " + Convert.ToString(FromNToTen(s, 2)));
  41. Console.WriteLine("Result8 is: "+ Convert.ToString(FromNToTen(s,8)));
  42. Console.WriteLine("Result16 is: "+ Convert.ToString(FromNToTen(s,16)));
  43. break;
  44. }
  45. case 4:
  46. {
  47. Console.WriteLine("You've chosen ");
  48. string result10 = Convert.ToString(FromNToTen(s, 16));
  49. string result2 = FromTenToTwo(result10);
  50. Console.WriteLine("Result2 is:" + result2);
  51. Console.WriteLine("Result8 is: " + FromTwoToEight(result2));
  52. Console.WriteLine("Result10 is:" + result10);
  53. break;
  54. }
  55. default:
  56. {
  57. Console.WriteLine("Invalid number, please,\nreboot the program and try again later.");
  58. break;
  59. }
  60. }
  61. }
  62. static string FromTwoToEight (string s)
  63. {
  64. string result = "";
  65. while (s.Length > 0)
  66. {
  67. string sub;
  68. if (s.Length / 3 > 0)
  69. {
  70. sub = s.Substring(s.Length - 3);
  71. s = s.Remove(s.Length - 3);
  72. }
  73. else
  74. {
  75. sub = s;
  76. if (s.Length == 1)
  77. sub = "00" + s;
  78. else
  79. sub = "0" + s;
  80. s = "";
  81. }
  82. switch (sub)
  83. {
  84. case "000":
  85. {
  86. result = "0"+ result;
  87. break;
  88. }
  89. case "001":
  90. {
  91. result = "1" + result;
  92. break;
  93. }
  94. case "010":
  95. {
  96. result = "2" + result;
  97. break;
  98. }
  99. case "011":
  100. {
  101. result = "3" + result;
  102. break;
  103. }
  104. case "100":
  105. {
  106. result = "4" + result;
  107. break;
  108. }
  109. case "101":
  110. {
  111. result = "5" + result;
  112. break;
  113. }
  114. case "110":
  115. {
  116. result = "6" + result;
  117. break;
  118. }
  119. case "111":
  120. {
  121. result = "7" + result;
  122. break;
  123. }
  124. }
  125. }
  126. return result;
  127. }
  128. static string FromTwoToSixteen (string s)
  129. {
  130. string result = "";
  131. while (s.Length > 0)
  132. {
  133. string sub;
  134. if (s.Length / 4 > 0)
  135. {
  136. sub = s.Substring(s.Length - 4);
  137. s = s.Remove(s.Length - 4);
  138. }
  139. else
  140. {
  141. sub = s;
  142. if (s.Length == 1)
  143. sub = "000" + s;
  144. else if (s.Length == 2)
  145. sub = "00" + s;
  146. else
  147. sub = "0" + s;
  148. s = "";
  149. }
  150. switch (sub)
  151. {
  152. case "0000":
  153. {
  154. result = "0" + result;
  155. break;
  156. }
  157. case "0001":
  158. {
  159. result = "1" + result;
  160. break;
  161. }
  162. case "0010":
  163. {
  164. result = "2" + result;
  165. break;
  166. }
  167. case "0011":
  168. {
  169. result = "3" + result;
  170. break;
  171. }
  172. case "0100":
  173. {
  174. result = "4" + result;
  175. break;
  176. }
  177. case "0101":
  178. {
  179. result = "5" + result;
  180. break;
  181. }
  182. case "0110":
  183. {
  184. result = "6" + result;
  185. break;
  186. }
  187. case "0111":
  188. {
  189. result = "7" + result;
  190. break;
  191. }
  192. case "1000":
  193. {
  194. result = "8" + result;
  195. break;
  196. }
  197. case "1001":
  198. {
  199. result = "9" + result;
  200. break;
  201. }
  202. case "1010":
  203. {
  204. result = "A" + result;
  205. break;
  206. }
  207. case "1011":
  208. {
  209. result = "B" + result;
  210. break;
  211. }
  212. case "1100":
  213. {
  214. result = "C" + result;
  215. break;
  216. }
  217. case "1101":
  218. {
  219. result = "D" + result;
  220. break;
  221. }
  222. case "1110":
  223. {
  224. result = "E" + result;
  225. break;
  226. }
  227. case "1111":
  228. {
  229. result = "F" + result;
  230. break;
  231. }
  232. }
  233. }
  234. return result;
  235. }
  236. static double FromNToTen (string s,int n) // FROM N TO 10
  237. {
  238. string result = "";
  239. double temp, sum = 0;
  240. double system = n;
  241. for (int i=0;i<s.Length;i++) //1 variant
  242. {
  243. temp = Convert.ToInt32(s[s.Length-i-1])-48;
  244. temp= temp* Math.Pow(n, i);
  245. sum += temp;
  246. }
  247. /*for(int i=0;i<s.Length;i++) //2 variant
  248. {
  249. if (s[s.Length-i-1]=='1')
  250. {
  251. sum += Math.Pow(2, i);
  252. }
  253. }*/
  254. return sum;
  255. }
  256. static string FromTenToTwo (string s)
  257. {
  258. string result = "";
  259. int number = Convert.ToInt32(s);
  260. while(number>0)
  261. {
  262. if (number % 2 == 0)
  263. result = "0"+ result;
  264. else
  265. result = "1" + result;
  266. number = number / 2;
  267. }
  268. return result;
  269. }
  270.  
  271. }
  272. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement