Форум программистов, компьютерный форум CyberForum.ru

Перевод из 10СС - C++

Восстановить пароль Регистрация
 
vden23
1 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 109
14.10.2010, 02:04     Перевод из 10СС #1
извините за граматику!!
как перевести десятичное число у q-систему счисления. например, троичную, пятиричную.q вводить с клавиатуры.и чтобы переводило как и целую часть, так и дробную!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2010, 02:04     Перевод из 10СС
Посмотрите здесь:

Перевод из 10СС в 2,8,16СС. C++
перевод из 10сс в 16сс C++
Программа для перевода чисел из 10сс в 2сс C++
Перевод из 2сс в 10сс C++
Перевод из 2 в 10 сс C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mojidabckuu
5 / 5 / 1
Регистрация: 26.09.2010
Сообщений: 25
14.10.2010, 02:36     Перевод из 10СС #2
Чтобы переводило целую нужно делить и оставлять остаток в обратном порядке, в дробной части надо бы умножать и оставлять целую часть числа в прямом порядке...
vden23
1 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 109
14.10.2010, 08:08  [ТС]     Перевод из 10СС #3
спасибо. но я знаю как ето делать математически. проблема из C++.
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
14.10.2010, 18:19     Перевод из 10СС #4
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
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int q,i,mel;
    int ok[1000];
    
    cout<<"Chislo, kotoroe hotite perevesti:";
    cin>>i;
    cout<<endl<<"Sistema schislenija:";
    cin>>q;
    if (q<2)
    {
        cout<<"Error";
        return 1;
    }
    cout<<endl<<"Rezul'tat:";
    
    mel=0;
    while (i>0)
    {
        ok[mel]=i%q;
        i/=q;
        mel++;
        
    }
    
    for (mel--;mel>=0;mel--)
        cout<<ok[mel]<<" ";
    
    return 0;
}
vden23
1 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 109
14.10.2010, 23:56  [ТС]     Перевод из 10СС #5
спасибо конешно ! но ета прога переводит только целую часть.а мне очень нужна штоби переводило и дробовую!
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
15.10.2010, 10:41     Перевод из 10СС #6
Вот пока нерабочая версия:
C++
1
old code
Компилируется но не работает. Переводятся только целые. Пока.

О! Заработало! только правильно ли?
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
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <math.h>
#include <stdio.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    double num,drob;
    int mel=0;
    int meld,melc;
    int q,i,to;
    int ok[1000];
    
    cout<<"Chislo, kotoroe hotite perevesti:";
    cin>>num;
    cout<<"Sistema schislenija:";
    cin>>q;
    cout<<"Tochnost' (znakov posle zapjatoj):";
    cin>>to;
    
    i=(int)num;
    
    if ((q<2)||(to>20)||(q>36))
    {
        cout<<endl<<"Error";
        return 1;
    }
    cout<<endl<<"Rezul'tat:";
    
    
    while (i>0)
    {
        ok[mel]=i%q;
        i/=q;
        mel++;
    }
    
    for (mel--;mel>=0;mel--)
    {
        if (ok[mel]<10)
            cout<<ok[mel];
        else
            {
                putchar(ok[mel]-10+'A');
                
            }
    }
    
    
    melc=mel;
    drob=num-floor(num);
    
    if (drob!=0)
    {
    for(meld=melc;meld<=melc+to-1;meld++)
    {
        ok[meld]=floor(drob/(double)pow((double)q,melc-meld-1));
        drob=drob-ok[meld]*pow(q,melc-meld-1);
    }
    
        cout<<'.';
        
        for(meld=melc;meld<=melc+to;meld++)
    {
        if (ok[meld]<10)
            cout<<ok[meld];
        else
            {
                putchar(ok[meld]-10+'A');
                
            }
    }
    }
    system("pause");
    
    return 0;
}
Правильно. Точность до 20 знаков, система счисления от двоичной до 36-ричной (больше букв английского алфавита не хватило).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2010, 18:43     Перевод из 10СС
Еще ссылки по теме:

Перевод из 16 сс в 4 сс C++
C++ Перевод из C в С++
Перевод с С на С++ C++

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

Или воспользуйтесь поиском по форуму:
vden23
1 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 109
15.10.2010, 18:43  [ТС]     Перевод из 10СС #7
спасибо! счас попитаюсь запустить)

Добавлено через 27 минут
все идеально пашет!!!!огромное спасибо!!))
Yandex
Объявления
15.10.2010, 18:43     Перевод из 10СС
Ответ Создать тему
Опции темы

Текущее время: 04:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru