Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.83
Ser_Aguero
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 77
#1

Функция перевода целого числа из десятичной системы в p - ичную - C++

08.02.2013, 16:17. Просмотров 4150. Ответов 22
Метки нет (Все метки)

Нужно перевести число в p - ичную систему, начиная с двоичной и до шестнадцатиричной
как дописать чтобы переводилась в 16-чной системе?(

C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
 { 
 int n, p;
 cin >> n >> p;
 int ch = 0;
 for (int i = 0; n >= 1; i++)
 { 
 ch+=(n % p)* pow(10, i); 
 n/=p; 
 } 
 cout << ch;
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2013, 16:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция перевода целого числа из десятичной системы в p - ичную (C++):

Написать рекурсивную функцию перевода целого числа из десятичной системы счисления в 9 систему счисления C++ - C++
Написать рекурсивную функцию перевода целого числа из десятичной системы счисления в 9-чную систему счисления.

Программа перевода числа из десятичной системы в восмеричную - C++
Помогите написать программу, всю пару просидели с подругой протупили, а проверка все ошибки выдает

Рекурсивная процедура перевода числа из десятичной системы счисления в двоичную - C++
3) Написать рекурсивную процедуру перевода нату¬рального числа из десятичной системы счисления в двоич¬ную.

Написать рекурсивную функцию перевода числа с десятичной системы исчисления в двоичную - C++
Здравствуйте! Нужно написать рекурсивную функцию перевода числа с десятичной системы исчисления в двоичную. Примерно знаю как...

Программа для перевода числа из десятичной системы счисления во все существующие С++ - C++
Помогите пожалуйста. Не совсем понимаю как это правильно написать

Рекурсивная функция находящая наибольшую цифру в десятичной записи неотрицательного целого числа - C++
Описать рекурсивную функцию maxdig(N), которая находит наибольшую цифру в десятичной записи неотрицательного целого числа N. Пример:...

22
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
23.02.2013, 19:11 #16
Цитата Сообщение от Ser_Aguero Посмотреть сообщение
с 17ичной понятно, мне в p-чную надо, самому задавать систему, а не какая то конкретная)
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
#include <iostream>
#include <locale>
using namespace std;
void CC(int, int, int, int []);
 
int main() {
    setlocale(LC_ALL, "Rus");
int ch, cc;
cout<<"Ââåäèòå ÷èñëî ГЁ Г*îâóþ ÑÑ:"<<endl<<"×èñëî: ";
cin>>ch;
cout<<endl<<"ÑèñòåìГ* ñ÷èñëåГ*ГЁГї: ";
cin>>cc;
int i=1;
int B[100];
CC(ch, cc, i, B);
}
void CC(int ch, int cc, int i, int B[]) {
     
     if(ch>=cc) {
                B[i]=ch%cc;
                ch=(ch-(ch%cc))/cc;
                i++;
                CC(ch, cc, i, B);
                }
     else { 
          B[i]=ch;
          for(i; i>=1; i--) 
          if(cc>10) {
                    if(B[i]==10) {cout<<"A";}
                    else if(B[i]==11) {cout<<"B";}
                    else if(B[i]==12) {cout<<"C";}
                    else if(B[i]==13) {cout<<"D";}
                    else if(B[i]==14) {cout<<"E";}
                    else if(B[i]==15) {cout<<"F";}
                    else { cout<<B[i];}
                    }
          else {
               cout<<B[i];
               }
}
}
0
Ser_Aguero
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 77
25.02.2013, 07:37  [ТС] #17
В чем ошибка в модульном тесте??(( блин
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include "CppUnitTest.h"
#include "C:\Documents\Visual Studio 2012\Projects\dip1\dip1\rad.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
 
namespace UnitTest1
{       
    TEST_CLASS(UnitTest1)
    {
    public:
        
        TEST_METHOD(TestMethod1)
        {
            //char res = toRadix(555,16);
        int x =555;
        int radix = 16;
        char *str =0;
        Assert::AreEqual("22b", toRadix(555,16,0));
        //Assert::AreEqual(expectedValue, actualValue);
        }
 
    };
}
1 IntelliSense: отсутствуют экземпляры перегруженная функция "Microsoft::VisualStudio::CppUnitTestFramework::Assert::AreEqual", соответствующие списку аргументов
типы аргументов: (const char [4], void) c:\Documents\Visual Studio 2012\Projects\dip1\UnitTest1\unittest1.cpp 18
0
Wolkodav
605 / 458 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
25.02.2013, 08:40 #18
Не все аргументы ввели. Или наоборот перебор аргументов.
почитайте на досуге, msdn вам в помощь.

Добавлено через 1 минуту
Надеюсь очевидно что ссылка в моём посте вам.
0
Ser_Aguero
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 77
25.02.2013, 08:56  [ТС] #19
Цитата Сообщение от Wolkodav Посмотреть сообщение
Не все аргументы ввели. Или наоборот перебор аргументов.
почитайте на досуге, msdn вам в помощь.

Добавлено через 1 минуту
Надеюсь очевидно что ссылка в моём посте вам.
да читал это уже.. спасибо.. str в моем случае же массив временных значений, как его заглушить не знаю..
0
ya_noob
_
203 / 147 / 9
Регистрация: 08.10.2011
Сообщений: 432
25.02.2013, 14:29 #20
Ser_Aguero, я может чего-то не понимаю, но разве по этой ссылке
Цитата Сообщение от Wolkodav Посмотреть сообщение
от вас не этого требуют:
C++
1
2
3
4
5
int x =555;
 char str[ 1000 ];
 int radix = 16;
 toRadix( x, str, radix );
 Assert::AreEqual("22b", str, "aaa-aa-a-a-a");
да и аргументы вы не в той последовательности указываете. вы делаете так:
Цитата Сообщение от Ser_Aguero Посмотреть сообщение
C++
1
toRadix(555,16,str)
а надо так:
C++
1
toRadix(555,str,16)
Сосредоточтесь!
0
Ser_Aguero
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 77
26.02.2013, 11:30  [ТС] #21
Цитата Сообщение от ya_noob Посмотреть сообщение
да и аргументы вы не в той последовательности указываете. вы делаете так:
Сообщение от Ser_Aguero Код C++1
toRadix(555,16,str)
знаю, я и параметры в самой radix поменял, так что правильно) просто я думал я не правильно в самих настройках сдалал не правильно как просят на майкрософте

Добавлено через 19 часов 15 минут
Цитата Сообщение от ya_noob Посмотреть сообщение
Assert::AreEqual("22b", str, "aaa-aa-a-a-a");
зачем нужна строка аааа?)) сравниваем два обьекта 22b - ожидаемый результат и результат фактический что хранится в str? и если ошибка вывести это самое сообщение aaa? так?
0
Ser_Aguero
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 77
12.03.2013, 07:19  [ТС] #22
Цитата Сообщение от ya_noob Посмотреть сообщение
C++
1
else str[ i ] = t - 10 + 'a';
как это работает? почему мы только а записываем а не весь массив букв 16чной системы?(
0
Ser_Aguero
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 77
24.03.2013, 11:43  [ТС] #23
ya_noob, зачем мы делаем этот цикл?
C++
1
while ( pow * radix <= x ) pow *= radix;
0
24.03.2013, 11:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 11:43
Привет! Вот еще темы с ответами:

Составить программу для перевода данного натурального числа в p-ичную систему счисления - C++
Составить программу для перевода данного натурального числа в p-ичную систему счисления (2 &lt; р &lt; 9). Добавлено через 27 минут ...

Функция перевода из десятичной в двоичную систему - C++
Здравствуйте, помогите пожалуйста написать функцию перевод из десятеричной в двоичную систему. Результат нужно записать в переменную...

Программа для перевода из десятичной системы счисления в двоичную - C++
Программа вроде работает, но почему-то выдает ошибку после вывода результата. Из за этого я не могу продолжить работать уже с переводом...

Разработать программу перевода вещественных чисел из десятичной системы счисления в двоичную - C++
Помогите пожалуйста написать программу.Разработать программу перевода вещественных чисел из десятичной системы счисления в двоичную.


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.