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

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

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

Системы исчисления - C++

13.10.2010, 21:47. Просмотров 578. Ответов 3
Метки нет (Все метки)

Здраствуйте !! Помогите пожалуйста доделать программу,которая переводит число в любую систему исчисления...Вот код программы,все работает,но переводит только целые числа...Как сделать чтоб переводило и дробовые???

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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void main ()
{clrscr();
long int k,i,p,c;
long char b[50];
long int a[50];
cout<<"chislo=";
cin>>c;
nare: {cout<<"p=";
cin>>p;
if (p<2&&p>16) goto nare;
i=0;k=0;
while (c>=p)
        {
        a[i]=c%p;
        switch(a[i]){
        case 0 :b[i]='0'; break;
        case 1 :b[i]='1';break;
        case 2 :b[i]='2';break;
        case 3 :b[i]='3';break;
        case 4 :b[i]='4';break;
        case 5 :b[i]='5';break;
        case 6 :b[i]='6';break;
        case 7 :b[i]='7';break;
        case 8 :b[i]='8';break;
        case 9 :b[i]='9';break;
        case 10 :b[i]='A';break;
        case 11 :b[i]='B';break;
        case 12 :b[i]='C';break;
        case 13 :b[i]='D';break;
        case 14 :b[i]='E';break;
        case 15 :b[i]='F';break;
 
                                 }
        c=c/p;
 
        i++;
        k++;
        }
        a[i]=c;
        switch(a[i]){
        case 0 :b[i]='0'; break;
        case 1 :b[i]='1';break;
        case 2 :b[i]='2';break;
        case 3 :b[i]='3';break;
        case 4 :b[i]='4';break;
        case 5 :b[i]='5';break;
        case 6 :b[i]='6';break;
        case 7 :b[i]='7';break;
        case 8 :b[i]='8';break;
        case 9 :b[i]='9';break;
        case 10 :b[i]='A';break;
        case 11 :b[i]='B';break;
        case 12 :b[i]='C';break;
        case 13 :b[i]='D';break;
        case 14 :b[i]='E';break;
        case 15 :b[i]='F';break;
                                 }
for (i=k;i>=0;i--)cout<<b[i];
 
getch();}
}
подскажите пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2010, 21:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Системы исчисления (C++):

Системы исчисления - C++
Здраствуйте !! Помогите пожалуйста доделать программу,которая переводит число в любую систему исчисления...Вот код программы,все...

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

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

Преобразование чисел с десятичной системы исчисления - C++
Помогите плз, задача вообще ппц=-O:wall::help: Организуйте ввод чисел в десятичной системе счисления и преобразование их в формат с...

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

Написать программу, переводящую числа в запись в виде системы исчисления Фибоначчи - C++
Числа Фибоначчи определяются следующим образом. F1=1, F2=1, Fn=Fn-1+Fn-2. Любое целое положительное число может быть представлено как сумма...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
14.10.2010, 07:53 #2
у дробных чисел нужно переводить отдельно целую часть и отдельно дробную
в гугле полно примеров как переводить дробные части
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.10.2010, 08:38 #3
Целая часть переводится или умножением на исходное основание, или делением на целевое, а дробная делением на исходное. Это три разных алгоритма, поэтому перевести дробь целиком не возможно, можно только перевести отдельно целую и дробную части и конкатенировать их через разделитель.
AdVanTage
0 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 3
14.10.2010, 17:05  [ТС] #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
35
36
37
38
#include<string.h>
#include<stdlib.h>
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
int main()
{ clrscr();
  char s[32];
  float num, final;
  int l,x,i;
  int p;
  cout<<"chislo= "; cin>>num;
  cout<<"p= "; cin>>p;
  itoa((int)num,s,p);
  l=strlen(s);
  s[l]='.';
  final=num-(int)num;
  for (i=l+1; i<(l+9); i++)
    if (final == 0) break;
       else {
    int y;
    float x=final*p;
    y=(int)x;
       switch(y)
         {case 10: s[i]='a'; break;
          case 11: s[i]='b'; break;
          case 12: s[i]='c'; break;
          case 13: s[i]='d'; break;
          case 14: s[i]='e'; break;
          case 15: s[i]='f'; break;
          default: s[i]=y+'0'; break;}
    final=x-y;
    s[i+1]='\0';
        }
  cout<<s<<endl;
  getch();
  return 0;
      }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2010, 17:05
Привет! Вот еще темы с ответами:

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

Определить систему исчисления (Написать программу.....) - C++
Написать прогу которая! распознает числа и показывает к какой системе исчесления относится! Например вводишь 10110110 прога выводит...

Напечатать в пятеричной системе исчисления числа от 0 до n - C++
Заданное натуральное число n. Напечатать в пятеричной системе исчисления числа от 0 до n. Задане натуральне число n. Надрукувати в...

Перевод из двоичной в десятичную систему исчисления - C++
Проверить правильно ввода этого числа ( в его записи должны быть 0 или 1) при правильном вводе перевести в десятеричную


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

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

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