Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <math.h>
- #include <string>
- #include <fstream>
- #include <conio.h>
- using namespace std;
- string ent;
- char c;
- bool rt = false;
- int anw;
- int n;
- int res = 0;
- double sum8, sum16 = 0;
- long double sum2 = 0;
- int num = 0;
- int main() {
- setlocale(LC_ALL, "ru");
- cout << "Введите число: ";
- cin >> ent;
- n = ent.length();
- int ps = n - 1;
- for (int i = ent.length() - 1; i >= 0; i--) {
- c = ent[i];
- switch (c) {
- case 'A':
- rt = true;
- case 'B':
- rt = true;
- case 'C':
- rt - true;
- case 'D':
- rt = true;
- case 'E':
- rt = true;
- case 'F':
- rt = true;
- }
- }
- if (rt == true) {
- cout << "Ваше число записано в 16-чной системе счисления. Выберите искомую с.с.. Нажмите '8' или '2'" << '\n' <<
- "для перевода в 8-чную или 2-чную систему счисления соответсвенно: ";
- cin >> anw;
- for (int i = 0; i <= ent.length() - 1; i++) {
- c = ent[i];
- switch (c) {
- case '1':
- res += pow(16, ps);
- break;
- case '2':
- res += 2 * pow(16, ps);
- break;
- case '3':
- res += 3 * pow(16, ps);
- break;
- case '4':
- res += 4 * pow(16, ps);
- break;
- case '5':
- res += 5 * pow(16, ps);
- break;
- case '6':
- res += 6 * pow(16, ps);
- break;
- case '7':
- res += 7 * pow(16, ps);
- break;
- case '8':
- res += 8 * pow(16, ps);
- break;
- case '9':
- res += 9 * pow(16, ps);
- break;
- case 'A':
- res += 10 * pow(16, ps);
- break;
- case 'B':
- res += 11 * pow(16, ps);
- break;
- case 'C':
- res += 12 * pow(16, ps);
- break;
- case 'D':
- res += 13 * pow(16, ps);
- break;
- case 'E':
- res += 14 * pow(16, ps);
- break;
- case 'F':
- res += 15 * pow(16, ps);
- break;
- }
- ps = ps - 1;
- }
- if (anw == 8) {
- while (res > 0) {
- sum8 = (sum8 + res % 8) / 10;
- res = res / 8;
- num += 1;
- }
- cout << "Значение введенного числа в искомой системе счисления = " << sum8 * pow(10, num);
- }
- if (anw == 2) {
- while (res > 0) {
- sum2 = (sum2 + res % 2) / 10;
- res = res / 2;
- num += 1;
- }
- cout << "Значение введенного числа в искомой системе счисления = " << fixed
- << setprecision(0) << sum2 * pow(10, num) << endl;
- }
- }
- else
- for (int i = 0; i <= ent.length() - 1; i++) {
- c = ent[i];
- cout << c;
- switch (c)
- {
- case '2':
- rt = true;
- case '3':
- rt = true;
- case '4':
- rt = true;
- case '5':
- rt = true;
- case '6':
- rt = true;
- case '7':
- rt = true;
- }
- }
- if (rt == true) {
- cout << "Вы записали число в 8-ной системе счисления. В какую перевести" << '\n' <<
- "напишите '16' или '2' для перевода в эти с.с. соответсвенно: ";
- cin >> anw;
- for (int i = 0; i <= n - 1; i++) {
- c = ent[i];
- switch (c) {
- case '1':
- res += pow(8, ps);
- break;
- case '2':
- res += 2 * pow(8, ps);
- break;
- case '3':
- res += 3 * pow(8, ps);
- break;
- case '4':
- res += 4 * pow(8, ps);
- break;
- case '5':
- res += 5 * pow(8, ps);
- break;
- case '6':
- res += 6 * pow(8, ps);
- break;
- case '7':
- res += 7 * pow(8, ps);
- break;
- }
- ps = ps - 1;
- }
- if (anw == 16) {
- cout << hex << "Ваше число в искомой с.с. = " << res;
- }
- if (anw == 2) {
- while (res > 0) {
- sum2 = (sum2 + res % 2) / 10;
- res = res / 2;
- num += 1;
- }
- }
- cout << "Ваше число в искомой с.с. = " << fixed
- << setprecision(0) << sum2 * pow(10, num);
- }
- else {
- cout << "Ваше число записано в 2-чной с.с. В какую перевести" << '\n' <<
- "напишите '16' или '8' для перевода в эти с.с. соответсвенно: ";
- cin >> anw;
- for (int i = 0; i <= n - 1; i++) {
- c = ent[i];
- switch (c)
- {
- case '1':
- res += pow(2, ps);
- break;
- }
- ps -= 1;
- }
- if (anw == 16) {
- cout << hex << "Ваше число в искомой с.с. = " << res;
- }
- if (anw == 8) {
- while (res > 0) {
- sum8 = (sum8 + res % 2) / 10;
- res = res / 2;
- num += 1;
- }
- cout << "Число в 16-ной - " << sum8 * pow(10, num);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement