Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторки по ОС препод Челноков / 2семестр / VD / NIck / Lab1
.c#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;
}