Здравствуйте уважаемые.
Копался в IAR 5.50 функций itoa(), Ltoa(), вот эти варианты проверил, работают.
Может кому нибудь интересно.
void ltoa(long int n,char *str)
{
unsigned long i;
unsigned char j,p;
i=1000000000L;
p=0;
if (n‹0)
{
n=-n;
*str++='-';
};
do
{
j=(unsigned char) (n/i);
if (j || p || (i==1))
{
*str++=j+'0';
p=1;
}
n%=i;
i/=10L;
}
while (i!=0);
*str=0;
}
//************************************************** *****
void reverse(char s[])
{
int i, j;
char c;
for (i = 0, j = strlen(s)-1; i‹j; i++, j--) {
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
void itoa(int n, char s[])
{
int i, sign;
if ((sign = n) ‹ 0) //записываем знак
n = -n; // делаем n положительным числом
i = 0;
do { //генерируем цифры в обратном порядке
s[i++] = n % 10 + '0'; //берем следующую цифру
} while ((n /= 10) › 0); // удаляем
if (sign ‹ 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
}
ltoa - выдернул из САVR, а itoa- нашел где то в и-нете.