Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <string>
- using namespace std;
- int main()
- {
- setlocale(0, "");
- cout << "\
- 1. Перевод из двоичного числа в десятичное \n\
- 2. Перевод из шестнадцатеричного числа в десятичное \n\
- 3. Перевод из десятичного числа в двоичное \n\
- 4. Перевод из десятичного числа в шестнадцатеричное\n";
- while (true)
- {
- int option;
- cout << "Выберите действие: ";
- cin >> option;
- switch (option)
- {
- case 1:
- {
- int number;
- int conc = 0;
- int i = 0;
- cout << "Введите число для преобразования из 2-ичной в 10-тиричную: ";
- cin >> number;
- while (number)
- {
- if (number % 2)
- {
- conc += pow(2, i);
- }
- number /= 10;
- i++;
- }
- cout << "Преобразованное число: " << conc << endl;
- break;
- }
- case 2:
- {
- string str;
- int a;
- int conc = 0;
- cout << "Введите число для преобразования из 16-тиричной в 10-тиричную: ";
- cin >> str;
- int p = str.length() - 1;
- for (int i = 0; i < str.length(); i++)
- {
- switch (toupper(str[i]))
- {
- case 'A': a = 10; break;
- case 'B': a = 11; break;
- case 'C': a = 12; break;
- case 'D': a = 13; break;
- case 'E': a = 14; break;
- case 'F': a = 15; break;
- case '1': a = 1; break;
- case '2': a = 2; break;
- case '3': a = 3; break;
- case '4': a = 4; break;
- case '5': a = 5; break;
- case '6': a = 6; break;
- case '7': a = 7; break;
- case '8': a = 8; break;
- case '9': a = 9; break;
- case '0': a = 0; break;
- }
- conc += a * pow(16, p);
- p--;
- }
- cout << "Преобразованное число: " << conc << endl;
- break;
- }
- case 3:
- {
- string str;
- int number;
- cout << "Введите число для преобразования из 10-тиричной в 2-ичную: ";
- cin >> number;
- while (number)
- {
- if (number % 2 == 0)
- {
- number /= 2;
- str += '0';
- }
- else if (number % 2)
- {
- number /= 2;
- str += '1';
- }
- }
- reverse(str.begin(), str.end());
- cout << "Преобразованное число: " << str << endl;
- break;
- }
- case 4:
- {
- string str;
- int number;
- int i = 0;
- cout << "Введите число для преобразования из 10-тиричной в 16-тиричную: ";
- cin >> number;
- while (number)
- {
- i = number % 16;
- switch (i)
- {
- case 10: str += 'A'; break;
- case 11: str += 'B'; break;
- case 12: str += 'C'; break;
- case 13: str += 'D'; break;
- case 14: str += 'E'; break;
- case 15: str += 'F'; break;
- case 16: str += to_string(10); break;
- default: str += to_string(i); break;
- }
- number /= 16;
- }
- reverse(str.begin(), str.end());
- cout << "Преобразованное число: " << str << endl;
- break;
- }
- }
- }
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement