Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
26.05.2014
Размер:
1.23 Кб
Скачать
#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;
}

Соседние файлы в папке all