# include <stdio.h>
# include <assert.h>
# include <string.h>
void swap(char *p1,char *p2)
{
char tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
void reverse(char *start,char *end)
{
assert(start != NULL && end != NULL);
while (start < end)
{
swap(start,end);
start++;
end--;
}
}
char *my_itoa(int n,char *p,int b)
{
int i = 0;
char *pret;
pret = p;
assert(p != NULL);
if (p != NULL)
{
if (n < 0)
{
*p = '-';
n = -n;
p++;
}
while (n > 0)
{
*p = "0123456789ABCDEF"[n%b];
n /= b;
p++;
}
*p = '\0';
if (*pret == '-')
reverse(pret+1,pret + strlen(pret) - 1);
else
reverse(pret,pret + strlen(pret) - 1);
return pret;
}
return NULL;
}
int main()
{
char str[32];
int num;
int s;
char *ret;
scanf ("%d %d",&num,&s);
ret = my_itoa(num,str,s);
printf ("%s\n",ret);
return 0;
}
进制转换
最新推荐文章于 2020-06-07 20:19:33 发布