Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2008, 23:30   #1
STR78
Новичок
Джуниор
 
Регистрация: 02.11.2008
Сообщений: 1
По умолчанию написал алгоритм перевода чисел из 10 в любую другую систему счисления...компилиться, но не выполняеться

float PerToDec(AnsiString Str)
{ AnsiString Str1,Str2,Str3,Str4,Str6; //целая дробная часть
int Chislo,i,i1,z; //число,счетчик , счетчик
float a,Chislo1;
int mas[100];
i1=Str.Length();
//делим на целые и дробные части
for (i=1; i<=i1; i++)
{ if (Str[i]==',') {Str1=Str.Insert(1,i-1); Str2=Str.Insert(i+1,i1); break;}}
//Переводим в нужную систему целую часть
Chislo=StrToInt(Str1);
i=0;
do {mas[i]=Chislo%n; Chislo=Chislo/n;i=i+1;} while (Chislo>=n);
//---------------------------------------------------------------

for (i ;i>0; i--) { Str3=Str3+IntToStr(mas[i]);}
//переводим дробную часть
for (i=0;i<100; i++) {mas[i]=0;}
//---------------------------------------------------------------
Chislo1=StrToFloat(Str2);
i1=Str2.Length();
z=10 ;
for (i=1; i<=i1-1; i++) {z=10*z;}
Chislo1=Chislo1/z;
i=0;
do {mas[i]=int(Chislo1*n);Chislo1=Chislo1*n-int(Chislo1*n);i=i+1;} while (i<=i1);
//----------------------------------------

for (i=0 ; i<=i1; i++) {Str4=Str4+IntToStr(mas[i]);}
Str6=Str3+','+Str4;
a=StrToFloat(Str6);
return(a);

}
STR78 вне форума Ответить с цитированием
Старый 03.11.2008, 00:24   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

код жесть. объем сокращал?) я помню, на первом курсе этой фигней занимался, типо считалось круто, чем меньше код тем круче курсач))
проверять твое не хочется, но могу предложить свое решение данного вопроса))

Код:
int main()
{
char buff[64];
int num = 4; //твое число в десятичной
int st = 2;   //в какую систему счисления переводим

itoa(buff, num, st);
pirntf(buff);

return 0;
}

Последний раз редактировалось vvviperrr; 03.11.2008 в 01:01.
vvviperrr вне форума Ответить с цитированием
Старый 03.11.2008, 03:00   #3
Iry$k@
 
Регистрация: 01.11.2008
Сообщений: 5
По умолчанию

vvviperrr, твоя програмка тоже не хочет проходить, пишет ошибку:
cannot convert parameter 1 from 'char [64]' to 'int'
Iry$k@ вне форума Ответить с цитированием
Старый 03.11.2008, 08:12   #4
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

наоборот itoa(num,buff,st);
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 03.11.2008, 17:07   #5
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

да, наоборот) писал без проверки
vvviperrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод целых чисел из одной системы счисления в другую =LeonZone= Помощь студентам 19 12.12.2010 16:18
Программа перевода из одной системы счисления в другую - Turbo Pascal 7.0. Prescott Помощь студентам 5 19.03.2010 19:26
Какой оптимальный способ в Delphi для перевода 10 системы счисления в 16с.с SERGOO Общие вопросы Delphi 5 25.05.2007 19:02