Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 59
1

Перевод до 16 ричной СС

08.12.2018, 15:10. Показов 1508. Ответов 6

Author24 — интернет-сервис помощи студентам
Надо реализовать перевод из любой СС в любую СС (до 16-ричной)
Есть код (Данный ниже). Он переводит от 2-ичной СС до 10-тичной СС. Дальше я так понимаю надо работать через свитч,но нормальных статей на эту тему не нашел. Вопрос как работает свитч и что нужно сделать в этом коде,что бы все работало до 16-ричной СС?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// 
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    int variable, x, a[34], y, z, variable2, b[34], sum, nado, first, second,num;
    setlocale(LC_ALL, "Russian");
    
    
    cout << "Write your number!\nFor perevod from FIRST to SECOND \n";
    cin >> variable;
    sum = 0;
    cout << "First \n";
    cin >> first;
    cout << "Second \n";
    cin >> second;
    y = 0;
    nado = 0;
 
    // Перевод из 2 в 10 
 
    variable2 = variable;
    z = 0;
    y = 0;
    //Сколько символов в тексте - 1 
    while (variable > 0)
    {
        z++;
        variable = variable / 10;
    }
    z--;
 
    variable = variable2;
 
    while (variable > 0)
    {
 
        x = variable % 10;
 
        variable = variable / 10;
        b[y] = x;
        y = y + 1;
    }
 
    for (int i = y - 1; 0 <= i; i--)
    {
        nado = pow(first, z) * b[i];
        z--;
        sum = sum + nado;
    }
    variable = sum;
    x = 0; y = 0;
    // Перевод из 10 в 2
    while (variable > 0)
    {
        x = variable % second;
        variable = variable / second;   
        a[y] = x;
        y = y + 1;
    }
 
    for (int i = y - 1; 0 <= i; i--)
    {
        cout << a[i];
    }
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2018, 15:10
Ответы с готовыми решениями:

Перевод из 16-ричной СС в 10
Здравствуйте, есть функция: void calc(int num,int base) { if (num == 0) return; ...

Выписать алфавиты 2-ичной, 5-ричной, 8-ричной, 16-ричной систем счисления
Выписать алфавиты 2-ичной, 5-ричной, 8-ричной, 16-ричной систем счисления.

Перевод из 16-ричной с/с в 10/8/2 с/с
Здравствуйте! Помогите, пожалуйста, со следующей задачей: С клавиатуры вводится 3-значное...

Перевод числа из 16-ричной СС
Скажите, как в c# &quot;объяснить&quot; программе по переводу чисел в различные СС, что ABCD и т.д. это...

6
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
08.12.2018, 15:57 2
В любой книге есть про switch.
0
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 59
08.12.2018, 21:02  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
В любой книге есть про switch.
Может быть и есть,но я немного туповат и не понимаю,как его встроить в свой код
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
08.12.2018, 21:09 4
Ты не из двоичной переводишь. У тебя же вводится десятичное число.
Ну а так, просто замени деление на 10 делением на 16.
0
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 59
08.12.2018, 21:14  [ТС] 5
Цитата Сообщение от nmcf Посмотреть сообщение
Ты не из двоичной переводишь. У тебя же вводится десятичное число.
Там работает из любой в любую до 10 системы (на комменты не смотрите,там они тоже не в тему( с прошлого кода)
Цитата Сообщение от nmcf Посмотреть сообщение
Ну а так, просто замени деление на 10 делением на 16.
Если заменить деление,то тогда когда надо будет вывести "A" будет выводиться 10... Ну и ввести число в 16-ричной СС тоже не получается т.к. буквы он не расшифровывает как надо(
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
08.12.2018, 21:21 6
https://www.cyberforum.ru/blogs/18334/blog96.html
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
08.12.2018, 21:24 7
13-я строка вводит десятичное число. От того, что ты нули с единицами напишешь, двоичным оно не станет.
Цитата Сообщение от vnyzaica Посмотреть сообщение
когда надо будет вывести "A" будет выводиться 10
Ну вот в момент вывода и делай подмену.
1
08.12.2018, 21:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2018, 21:24
Помогаю со студенческими работами здесь

Перевод из 10-ричной в 8-ричную!
Доброго времени суток! Помогите решить задачку! Напишите программу, которая проверяет вторую...

Перевод из 16-ричной в двоичную в массиве
Уважаемые форумчане, поясните нерадивому первокурснику, как нужно делать данное задание : Дан...

Перевод из 6-ричной системы в десятичную
На вход программе подается строка символов, оканчивающаяся точкой, и состоящая из ненулевого...

Перевод чисел из 16-ричной системы в двоичную
Как перевести числа из 16-ричной системы в двоичную, но число может быть дробным или отрицательным....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru