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

Представление числа в k-ой системе счисления - C++

Восстановить пароль Регистрация
 
Romantikkk
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 144
20.10.2012, 15:33     Представление числа в k-ой системе счисления #1
Помогите, пожалуйста, надо написать полноценную программу перевода числа в систему счисления по основанию k. На входе программы — число для перевода N и основание системы счисления k. На выходе представление введенного числа N в k-чной системе счисления. Программа должна работать при значениях k от 2 до 16 включительно.

Нужно в с++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2012, 15:33     Представление числа в k-ой системе счисления
Посмотрите здесь:

Сложить два числа в двоичной системе счисления в прямом коде C++
Перевод числа в p-ичной системе счисления в десятичную систему C++
C++ Оформить вывод числа в двоичной системе счисления
C++ Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления
C++ Получить представление числа в р-чной системе счисления
C++ Обьяснить представление числа в двоичной системе
C++ Записать в файл f3 числа из последовательности №1 в 8-ой системе счисления
Палиндром записи числа в 16-ричной системе счисления C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kitchen_door
Сообщений: n/a
20.10.2012, 16:29     Представление числа в k-ой системе счисления #2
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include<iostream>
#include<string>
#include <math.h>
using namespace std;
 
int Menu (string vyvod, int mmm)
{
      int action=0;
      int oshibka=0;
      do
      {   
          oshibka=0;
          cout <<vyvod<<endl;
          cin>>action;
          if(action<=mmm)
          {
              oshibka=1;
 
          }
      }
      while ((action<=1) || (action>36)||(oshibka==1));
      return action;
}
 
 
 
string transfer(int*a,int n, int m, int size)
{
        int b[100];
        string chislo;
        int summa=0;
        for (int i=0; i<size; i++)
        {
           summa=summa+a[i]*pow((double)n,size-i-1);
        }
        int l=0;
        do 
        {
            b[l++]=summa%m;
            summa/=m;
        }
        while (summa>0);
        for (int i=l-1; i>-1; i--)
        {
            if((b[i]<10))
            {
                  b[i]=b[i]+48;
                  chislo=chislo+(char)b[i];
            }
            else
            {
                  b[i]=b[i]+55;
                  chislo=chislo+(char)b[i];
            }
        }
        return chislo;
}
 
string vvod()
{
    int oshibka=0;
    string str;
    do
    {
        oshibka=0;
        cout <<"Введите число:" <<endl;
        cin >>str;
        for (int i=0; i<str.size(); i++)
        {
              if (((str[i]<'0')||(str[i]>'9'))&&((str[i]<'a')||(str[i]>'z'))&&((str[i]<'A')||(str[i]>'Z')))
              {
                  oshibka=1;
                  break;
                 
                  
              }
        
        
        }
     }
     while(oshibka==1);
 
    return str;
}
 
int main()
{
    setlocale(0,"");
    string str=vvod();
    
    int *a=new int[str.size()];
        
        for (int i=0; i<str.size(); i++)
        {
              if ((str[i]>='0')&&(str[i]<='9'))
              {
                  a[i]=str[i]-'0';
              }
              else if ((str[i]>='a')&&(str[i]<='z'))
              {
                  a[i]=(int)str[i]-87;
              } 
              else if ((str[i]>='A')&&(str[i]<='Z'))
              {
                  a[i]=(int)str[i]-55;
              }
    
     
       }
    
    
    int max=0;
    for (int i=0; i<str.size(); i++)
    {
        if (a[i]>max)
        {
            max=a[i];
 
        }
    }
    int n=Menu("Введите основание исходной системы счисления:",max);
    max=0;
    int m=Menu("Введите основание требуемой системы счисления:",max);
    cout <<"Число в требуемой системе счисления:" <<endl;
    cout << transfer(a,n, m,str.size())<<endl;
    system("pause");
    delete []a;
    return 0;
}
Yandex
Объявления
20.10.2012, 16:29     Представление числа в k-ой системе счисления
Ответ Создать тему
Опции темы

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