Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для sesitos
11 / 11 / 0
Регистрация: 10.11.2018
Сообщений: 201

Функция перевода в указанную систему счисления

15.02.2020, 09:40. Показов 2555. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.Прошу пожалуйста помощи в написании функции, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно переводится (системы счисления от 2 до 36). Например, при переводе числа 27 в систему счисления 16 должно получиться 1B; 13 в 5-ю - 23.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2020, 09:40
Ответы с готовыми решениями:

Функция перевода восьмеричного числа в двоичную систему счисления
Разработать спецификации и написать функцию для перевода восьмеричного числа в двоичную систему счисления. Ответ сформировать в виде...

Рекурсивная функция для перевода данного натурального числа в заданную систему счисления
Составить рекурсивную функцию для перевода данного натурального числа в р-ичную систему счисления (2<= р<= 9). Только...

Простейший алгоритм перевода числа из 10 системы счисления в 16 ричную систему счисления
Помогите написать самый простой алгоритм перевода из 10 системы счисления в 16 ричную систему счисления! Мне нужен именно самый простенький...

11
Just Do It!
 Аватар для XLAT
4211 / 2670 / 655
Регистрация: 23.09.2014
Сообщений: 9,083
Записей в блоге: 3
15.02.2020, 09:48
Цитата Сообщение от sesitos Посмотреть сообщение
36
а какими символами вы собирается это число записывать?
для счисления по основанию 36 вам понадобится 36 разных символов.
1
 Аватар для sesitos
11 / 11 / 0
Регистрация: 10.11.2018
Сообщений: 201
15.02.2020, 09:57  [ТС]
Я и хочу так 36 разных символов.

Добавлено через 2 минуты
char all [36][2]={"0" и так далее}
0
Just Do It!
 Аватар для XLAT
4211 / 2670 / 655
Регистрация: 23.09.2014
Сообщений: 9,083
Записей в блоге: 3
15.02.2020, 10:21
sesitos,

Вот добавьте ваши символы в таблицу
и функция будет вам генерить любые системы счисления в того диапазона,
до которого есть символы в таблице.
(щас можно до основания 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
#include <iostream>
#include <string>
 
 
std::string foo(int n, int k)
{   const std::string tab = "0123456789ABCDEF"; ///<<<---добавляйте ваши символы сюда!
    
    if(tab.size() < k)
    {   return "Error: Add symbols into tab!\n";
    }
    
    std::string s;
    
    for(int i = n; n ; n /= k)
    {   int t = n%k;
        s += tab[t];
    }
    for(int i = 0; i < s.size()/2; i++)
    {   std::swap(s[i], s[s.size() - i - 1]);
    }
    
    return s;
}
 
int main()
{   
    int n = 255;
    int k =  16;
    
    /// Тест:
    std::cout << foo(n  , k  ) << "\n";
    std::cout << foo(16 , 16 ) << "\n";
    std::cout << foo(123, 10 ) << "\n";
    std::cout << foo(123, 100) << "\n";
    
    getchar();
    return 0;
}
1
 Аватар для sesitos
11 / 11 / 0
Регистрация: 10.11.2018
Сообщений: 201
15.02.2020, 10:30  [ТС]
Я забыл уточнить,что нужно функциями решение получить
0
Just Do It!
 Аватар для XLAT
4211 / 2670 / 655
Регистрация: 23.09.2014
Сообщений: 9,083
Записей в блоге: 3
15.02.2020, 10:37
Цитата Сообщение от sesitos Посмотреть сообщение
нужно функциями решение получить
а то что?
C++
4
5
6
7
/// foo, которая получает в качестве аргументов целое положительное число и систему счисления:
std::string foo(int n, int k)
{
...
Цитата Сообщение от sesitos Посмотреть сообщение
Я забыл уточнить
ещё раз уточните какими именно функциями вам надо?
0
 Аватар для sesitos
11 / 11 / 0
Регистрация: 10.11.2018
Сообщений: 201
15.02.2020, 10:41  [ТС]
это да,но должна быть функция например void convetacia(int num,int bas){...
0
Just Do It!
 Аватар для XLAT
4211 / 2670 / 655
Регистрация: 23.09.2014
Сообщений: 9,083
Записей в блоге: 3
15.02.2020, 11:06
Цитата Сообщение от sesitos Посмотреть сообщение
это да,но должна быть функция например void convetacia(int num,int bas){...

ясно.
держите:
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
#include <iostream>
#include <string>
 
///----------------------------------------------------------------------------|
/// Функция 
/// void convetacia(int num, int bas)
///----------------------------------------------------------------------------:
void convetacia(int num, int bas)
{   const std::string tab = "0123456789ABCDEF"; ///<<<---добавляйте ваши символы сюда!
    
    if(tab.size() < bas)
    {   std::cout << "Error: Add symbols into tab!\n";
        return;
    }
    
    std::string s;
    
    for(int i = num; num ; num /= bas)
    {   int t = num%bas;
        s += tab[t];
    }
    for(int i = 0; i < s.size()/2; i++)
    {   std::swap(s[i], s[s.size() - i - 1]);
    }
    
    std::cout << "convetacia("<< num << ", " << bas << ") = " << s << "\n";
}
 
int main()
{   
    int num = 255;
    int bas =  16;
    
    /// Тест:
    convetacia(num, bas);
    convetacia(16 , 16 );
    convetacia(123, 10 );
    convetacia(123, 100);
    
    getchar();
    return 0;
}
Добавлено через 2 минуты
Вангую, что это не всё
и добавлять символы в таблицу tab для системы счисления по основанию 36 придётся мне?
1
 Аватар для sesitos
11 / 11 / 0
Регистрация: 10.11.2018
Сообщений: 201
15.02.2020, 11:06  [ТС]
Благодарю вас,успехов вам
0
Just Do It!
 Аватар для XLAT
4211 / 2670 / 655
Регистрация: 23.09.2014
Сообщений: 9,083
Записей в блоге: 3
15.02.2020, 11:10
Цитата Сообщение от XLAT Посмотреть сообщение
добавлять символы в таблицу tab для системы счисления по основанию 36 придётся мне?
добавил:
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
#include <iostream>
#include <string>
 
///----------------------------------------------------------------------------|
/// Функция 
/// void convetacia(int num, int bas)
///----------------------------------------------------------------------------:
void convetacia(int num, int bas)
{   const std::string tab = "0123456789ABCDEFqwertyuiopasdfghjklz";
    int t = num;
    
    if(tab.size() < bas)
    {   std::cout << "Error: Add symbols into tab!\n";
        return;
    }
    
    std::string s;
    
    for(int i = num; num ; num /= bas)
    {   int t = num%bas;
        s += tab[t];
    }
    for(int i = 0; i < s.size()/2; i++)
    {   std::swap(s[i], s[s.size() - i - 1]);
    }
    
    std::cout << "convetacia("<< t << ", " << bas << ") = " << s << "\n";
}
 
int main()
{   
    int num = 255;
    int bas =  16;
    
    /// Тест:
    convetacia(num, bas);
    convetacia(16 , 16 );
    convetacia(123, 10 );
    convetacia(36,  36 );
    convetacia(1239876543, 35);
    
    getchar();
    return 0;
}
1
 Аватар для sesitos
11 / 11 / 0
Регистрация: 10.11.2018
Сообщений: 201
15.02.2020, 11:31  [ТС]
еще прошу прощение,а как правильнее сделать в int main()
{ чтобы пользователь вводил данные?
Например
int n,k;
cout << "Select the number system (2,8,16)>> ";
cin >> n;

cout << "Number>> ";
cin >> k;
cout << "\n\tRezyltat: ";*/
0
Just Do It!
 Аватар для XLAT
4211 / 2670 / 655
Регистрация: 23.09.2014
Сообщений: 9,083
Записей в блоге: 3
15.02.2020, 11:39
Лучший ответ Сообщение было отмечено sesitos как решение

Решение

Цитата Сообщение от sesitos Посмотреть сообщение
чтобы пользователь вводил данные?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{   
 
    while(true)
    {   int num; std::cout << "num = "; std::cin >> num;
        int bas; std::cout << "bas = "; std::cin >> bas;
        
        if(num < 0 || num < 2) break;
        convetacia(num, bas);
    }
    
    getchar();
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2020, 11:39
Помогаю со студенческими работами здесь

Преобразовать число в указанную систему счисления
Нужно написать код в VS 2015 для этих заданий: 1.С клавиатуры вводится десятичное число M основание системы счисления от 2 до 9....

Программа перевода в двоичную систему счисления
Программа должна работать с числами в int и float, но в случае с дробными (float) видит только целую часть. В чем ошибка? ...

Написать функцию перевода в заданную систему счисления
3.Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно...

Перевода вещественного числа из шестиричной в десятичную систему счисления
Собственно, не могу найти функцию перевода вещественного числа из 6 сс в 10ую(у меня есть функция перевода целой части, но с дробной не...

Программа для перевода заданного числа в троичную систему счисления
Программа для перевода заданного числа в троичную систему счисления,напишите плиз код с коментами


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru