Преобразование чисел
Общий алгоритм строки, содержащей представление числа в системе счисления по основанию
`b`, в целое значение:
int str2int(const char s[], int b)
{ int r=0,zn=1;
if(*s=='-') //
{ zn=-1;
++s;
}
while(*s)
{ r=r*b+(*s>'9'?toupper(*s)-'A'+10:*s-'0');
++s;
}
return zn*r;
}
Обратное преобразование целого числа в строку немного сложнее:
void int2str(int r, int b, char s[])
{
int i=0, zn=1, c;
if(r<0) //
{ r=-r;
zn=-1;
}
while(r)
{
c=r%b+'0';
if(c>'9')
c+='A'-'0'-10;
s[i++]=c;
r/=b;
}
if(i==0)
s[i++]='0';
if(zn<0)
s[i++]='-';
s[i]=0;
strrev(s);
}