Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <iostream>
- using namespace std;
- void main()
- {
- setlocale(LC_ALL, "RUS");
- int num, k, num_10 = 0, m;
- //тип char - позволит тебе выводить символы(буквы)
- char num_16;
- //Я хз как сделать по другому
- //тут вводим скок у тебя будет символов например 3А5, количество 3
- cout << "Введите количество символов = ";
- cin >> k;
- // ну тут понятно
- cout << "Введите шестнатиричное число, а мы переведём в десятичное: " << endl;
- // *это указатель, нужен для того что бы массив был костантой(const)
- // Array - это однородный массив
- // если * не поставить будет выдовать ошибку что k - должен быть const
- int *Array = new int[k];
- //тут заполняем массив, просто пишешь 3А5, или можно по отдельности писать 3 enter, A enter, 5 enter
- //но лучше сразу написать 3A5(буквы большой буквой, и на английском)
- for (int i = 0; i < k; i++)
- {
- cin >> num_16;
- Array[i] = num_16;
- }
- // тут значит
- //m = k, я сделал для того, чтобы была ещё одна переменная со значением k(3), следовательно m = 3
- m = k;
- //дальше идёт цикл, будет повторяться m раз, k раз нельзя потому что, он у нас уменьшать будет в сдедушем
- for (int i = 0; i <= m; i++)
- {
- //switch, это то же самое что и if, else
- //Н-р; если '3', то num будет 3
- //'A' , то num будет 10
- // и т.д.
- switch (Array[i])
- {
- case '0': num = 0; break;
- case '1': num = 1; break;
- case '2': num = 2; break;
- case '3': num = 3; break;
- case '4': num = 4; break;
- case '5': num = 5; break;
- case '6': num = 6; break;
- case '7': num = 7; break;
- case '8': num = 8; break;
- case '9': num = 9; break;
- case 'A': num = 10; break;
- case 'B': num = 11; break;
- case 'C': num = 12; break;
- case 'D': num = 13; break;
- case 'E': num = 14; break;
- case 'F': num = 15; break;
- }
- //k уменьшается на 1
- k--;
- //а тут уже формула
- //ну, это ты знаешь, 0 + (3 * 16 ^ 2) , дальше цикл повториться num_10(тут какой ответ получился в предыдущем) + (10 * 16 ^ 1),
- //ещё раз повторяется num_10(сумма 1 раз когда цикл проходил и второй раз) + (5 * 16 ^ 0)
- // и т.д. и т.п.
- //num_10 - сначала равен нулю (0)
- num_10 = num_10 + num * pow(16.0, k);
- }
- //тут выводиться ответ
- cout << "16 -> 10 = " << num_10 << endl;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement