Показать сообщение отдельно
Старый 21.09.2005, 19:52   #1
Magus
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений
(для 205 пользователей)
Сообщение

Перевод из любой системы счисления (в пределах разумного) в любую.

#include <stdio.h>
#include <string.h>

main()
{
	int n=0,l;
	int j;
	int b,bg;
	int res[100];
	char s[100];
	printf("Enter the number:");
	scanf("%s",s);
	l=strlen(s);
	printf("Enter base:");
	scanf("%d",&b);
	printf("Enter goal base:");
	scanf("%d",&bg);
	
	for(j=0;j<l;j++)
	{
 s[j]=toupper(s[j]);
 if(isdigit(s[j])&&(s[j]-'0')<b)
 {
 	n=n*b+s[j]-'0';
 }else if(s[j]>='A'&&s[j]<='Z'&&(s[j]-'A'+10)<b)
 {
 	n=n*b+s[j]-'A'+10;
 }else 
 {
 	printf("error\n");
 	exit(-1);
 }//else
	}//for

	for(j=0;n!=0;j++)
	{
 res[j]=n%bg;
 n=n/bg;
	}//for

	printf("result:\n");
	for(j--;j>=0;j--)
	{
 if(res[j]<=9)
 {
 	printf("%c",'0'+res[j]);
 }else 
 {
 	printf("%c",'A'+res[j]+10);
 }//else
	}//for
}//main
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nerd (07.10.2011)