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

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

Войти
Регистрация
Восстановить пароль
 
vden23
1 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 109
#1

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

14.10.2010, 02:04. Просмотров 684. Ответов 6
Метки нет (Все метки)

извините за граматику!!
как перевести десятичное число у q-систему счисления. например, троичную, пятиричную.q вводить с клавиатуры.и чтобы переводило как и целую часть, так и дробную!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2010, 02:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из 10СС (C++):

Перевод из 10СС в 2,8,16СС. - C++
Не знаю как написать программу на языке си по переводу любого вводимого целого числа в 10 сс(системе счисления) в любую другую 2,8 или...

перевод из 10сс в 16сс - C++
Всем привет!) Подкиньте пожалуйста прогу перевода из 10сс в 16сс, где функция находит в строке десятичные константы и заменяет их на...

Перевод из 2сс в 10сс - C++
Помогите пожалуйста написать программу! Перевод дробной части 2го числа в дробное десятичное! Входное 2ое число константа задается как...

Программа для перевода чисел из 10сс в 2сс - C++
Всем здорова! Вот тут такая проблема, в код написан правильно, работает, но вот, под строку вывода числа конечного зарезервировано 30...

перевод из 2ой СС в 10СС - Pascal
програма перевода из 2oй в 10ю сс!:help:

Перевод из 16СС в 10СС - Delphi
Доброго времени суток! Использую такую функцию перевода: Function TForm1.Hex2Dec(shex: String): Real; CONST HEX : ARRAY OF...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mojidabckuu
5 / 5 / 1
Регистрация: 26.09.2010
Сообщений: 25
14.10.2010, 02:36 #2
Чтобы переводило целую нужно делить и оставлять остаток в обратном порядке, в дробной части надо бы умножать и оставлять целую часть числа в прямом порядке...
vden23
1 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 109
14.10.2010, 08:08  [ТС] #3
спасибо. но я знаю как ето делать математически. проблема из C++.
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
14.10.2010, 18:19 #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  [ТС] #5
спасибо конешно ! но ета прога переводит только целую часть.а мне очень нужна штоби переводило и дробовую!
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
15.10.2010, 10:41 #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-ричной (больше букв английского алфавита не хватило).
vden23
1 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 109
15.10.2010, 18:43  [ТС] #7
спасибо! счас попитаюсь запустить)

Добавлено через 27 минут
все идеально пашет!!!!огромное спасибо!!))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2010, 18:43
Привет! Вот еще темы с ответами:

Перевод 8сс в 10сс - C++ Builder
Здравствуйте, извините может тема уже рассматривалась раньше но в поиске не нашел подходящего примера. Нужно реализовать перевод числа с 8...

Перевод из 8СС в 10СС - Pascal
Помогите пожалуйста решить: Сложить программу , которая переводит восьмерочное число А в десятичное. Вывести промежуточные и...

Перевод чисел с 2 СС в в 10СС, 8СС, 16СС - Delphi
Здраствуйте всем! Помогите пожалуйста! Мне нужна ваша помощь, нужно Листинг программы для перевода числа из двоичной системы в 10СС,...

Нужно найти ошибку. Перевод из 10СС в 2СС - C#
Помогите найти ошибку. Перевод из 10СС в 2СС Вот два кода: Помогите исправить одну программу.Спасибо //выводит числа правильно, но...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.10.2010, 18:43
Ответ Создать тему
Опции темы

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