Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void main()
  7. {
  8. setlocale(LC_ALL, "RUS");
  9. int num, k, num_10 = 0, m;
  10. //тип char - позволит тебе выводить символы(буквы)
  11. char num_16;
  12.  
  13. //Я хз как сделать по другому
  14. //тут вводим скок у тебя будет символов например 3А5, количество 3
  15. cout << "Введите количество символов = ";
  16. cin >> k;
  17.  
  18. // ну тут понятно
  19. cout << "Введите шестнатиричное число, а мы переведём в десятичное: " << endl;
  20.  
  21. // *это указатель, нужен для того что бы массив был костантой(const)
  22. // Array - это однородный массив
  23. // если * не поставить будет выдовать ошибку что k - должен быть const
  24. int *Array = new int[k];
  25.  
  26. //тут заполняем массив, просто пишешь 3А5, или можно по отдельности писать 3 enter, A enter, 5 enter
  27. //но лучше сразу написать 3A5(буквы большой буквой, и на английском)
  28. for (int i = 0; i < k; i++)
  29. {
  30. cin >> num_16;
  31. Array[i] = num_16;
  32. }
  33.  
  34. // тут значит
  35. //m = k, я сделал для того, чтобы была ещё одна переменная со значением k(3), следовательно m = 3
  36. m = k;
  37. //дальше идёт цикл, будет повторяться m раз, k раз нельзя потому что, он у нас уменьшать будет в сдедушем
  38. for (int i = 0; i <= m; i++)
  39. {
  40. //switch, это то же самое что и if, else
  41. //Н-р; если '3', то num будет 3
  42. //'A' , то num будет 10
  43. // и т.д.
  44. switch (Array[i])
  45. {
  46. case '0': num = 0; break;
  47. case '1': num = 1; break;
  48. case '2': num = 2; break;
  49. case '3': num = 3; break;
  50. case '4': num = 4; break;
  51. case '5': num = 5; break;
  52. case '6': num = 6; break;
  53. case '7': num = 7; break;
  54. case '8': num = 8; break;
  55. case '9': num = 9; break;
  56. case 'A': num = 10; break;
  57. case 'B': num = 11; break;
  58. case 'C': num = 12; break;
  59. case 'D': num = 13; break;
  60. case 'E': num = 14; break;
  61. case 'F': num = 15; break;
  62. }
  63. //k уменьшается на 1
  64. k--;
  65. //а тут уже формула
  66. //ну, это ты знаешь, 0 + (3 * 16 ^ 2) , дальше цикл повториться num_10(тут какой ответ получился в предыдущем) + (10 * 16 ^ 1),
  67. //ещё раз повторяется num_10(сумма 1 раз когда цикл проходил и второй раз) + (5 * 16 ^ 0)
  68. // и т.д. и т.п.
  69. //num_10 - сначала равен нулю (0)
  70. num_10 = num_10 + num * pow(16.0, k);
  71.  
  72. }
  73. //тут выводиться ответ
  74. cout << "16 -> 10 = " << num_10 << endl;
  75.  
  76. system("pause");
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement