Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
26.05.2014
Размер:
2.09 Кб
Скачать
#include <stdio.h>
#include <math.h>
#include <string.h>

void main()
 {
 int InSys,OutSys;
 int i,n;
 char inp[10],ex[10],e;
 long int numb;
 int r[10];
 {

bgn:
printf("\n------------------");
   do
   {
   printf("\nInput Sistem: ");
   scanf("%d",&InSys);
   } while ((InSys<2) || (InSys>16));

RepInp:
   numb=0;
   printf("Input Number: ");
   scanf("%s",&inp);
   n=strlen(inp);
   for (i=n-1; i>=0; i--)
    {
     switch (inp[i])
   {
   case '0': r[i]= 0; break;
   case '1' : r[i]= 1; break;
   case '2' : r[i]= 2; break;
   case '3' : r[i]= 3; break;
   case '4' : r[i]= 4; break;
   case '5' : r[i]= 5; break;
   case '6' : r[i]= 6; break;
   case '7' : r[i]= 7; break;
   case '8' : r[i]= 8; break;
   case '9' : r[i]= 9; break;
   case 'A' : r[i]= 10; break;
   case 'B' : r[i]= 11; break;
   case 'C' : r[i]= 12; break;
   case 'D' : r[i]= 13; break;
   case 'E' : r[i]= 14; break;
   case 'F' : r[i]= 15; break;
   case 'a' : r[i]= 10; break;
   case 'b' : r[i]= 11; break;
   case 'c' : r[i]= 12; break;
   case 'd' : r[i]= 13; break;
   case 'e' : r[i]= 14; break;
   case 'f' : r[i]= 15; break;
   }
    if (r[i]>=InSys) {printf("Incorrect! Repeat please.  \n"); goto RepInp; }
    numb=numb+r[i]*pow(InSys,n-i-1); }
  do
  {
   printf("Output System : ");
   scanf("%d",&OutSys);
  } while ((OutSys<2) || (OutSys>16));

 printf("Decimal number: %d",numb) ;
 i=0;
while (numb != 0)
{ switch (numb%OutSys)
{
case 0 : ex[i] ='0'; break;
case 1 : ex[i]='1'; break;
case 2 : ex[i]='2'; break;
case 3 : ex[i]='3'; break;
case 4 : ex[i]='4'; break;
case 5 : ex[i]='5'; break;
case 6 : ex[i]='6'; break;
case 7 : ex[i]='7'; break;
case 8 : ex[i]='8'; break;
case 9 : ex[i]='9'; break;
case 10 : ex[i]='A'; break;
case 11 : ex[i]='B'; break;
case 12 : ex[i]='C'; break;
case 13 : ex[i]='D'; break;
case 14 : ex[i]='E'; break;
case 15 : ex[i]='F'; break;
}
numb=numb/OutSys;
i++;
}
ex[i]=numb;
printf("\nNumber in new system:  ");
for (i=i; i>=0; i--)  printf("%c",ex[i]);
}
goto bgn;
}
Соседние файлы в папке NIck