Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторки по ОС препод Челноков / 1семестр / wi2 / geyser / c2
.txt#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ch[6]={'A','B','C','D','E','F'};
int a[255];
int i, j, k, base, ost, base2;
char s[80];
system("clear");
err:
printf("Input integer value: ");
scanf("%s",&s);
printf("Input base (2..16): ");
scanf("%d",&base);
while (base<2 || base>16)
{
printf("Base can be only 2..16, repeat your input: ");
scanf("%d",&base);
}
k=strtol(s,NULL,base);
if (k==0)
{
printf("Value has illegal chars\n");
goto err;
}
printf("Input base to convert to (2..16): ");
scanf("%d",&base2);
while ((base2<2) || (base2>16))
{
printf("Base can be only 2..16, repeat your input: ");
scanf("%d",&base2);
}
i=0;
if (k>=base2)
{
while (k>=base2)
{
ost=k%base2;
k=k/base2;
s[i++]=ost;
}
s[i++]=k;
for (j=i-1;j>=0;j--)
{
if (s[j]<10)
printf("%d",s[j]);
else
printf("%c",ch[s[j]-10]);
}
}
else
if (k<10)
printf("%d",k);
else
printf("%c",ch[k-10]);
return 0;
}