Показать сообщение отдельно

  #10  
Старый 05.10.2008, 19:07
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
С нами: 9679872

Репутация: 347
По умолчанию

Цитата:
Товарищи, нужна помощь, нужен код на С++ переводящий Сиситемы Счисления.
Тоесть как бы из Любой в любую (до 20-ричной) не на прямую, а через десятичную... буду благодарен

ну вобщем так работает хотя для красоты надо было бы не юзать ltoa а написать свою:
Код:
#include <stdio.h>
#include <windows.h>

int cc1,cc2;
char buf[256];

int N2CC(char* N, int cc)
{
	char x,d;
	int len, res = 0;
	
	d = 1;
	
	len = strlen(N) - 1;
	while(1)
	{
		res = res + d * (N[len] - '0');
		if(len==0)break;
		d*=cc; len--;	
	}
	return res;
}

int main(int argc, char** argv)
{
	if(argc<4)
	{
		printf("Usage: labx N cc1 cc2");
		return 0;
	}

	cc1 = atol(argv[2]);
	cc2 = atol(argv[3]);
	
	ltoa(N2CC(argv[1],cc1),buf,cc2);
	printf("%s\n",buf);
	return 0;
}

Последний раз редактировалось bons; 05.10.2008 в 19:28..
 
Ответить с цитированием