rezident (22.03.2008 23:36, просмотров: 146) ответил Ксения на Преобразование двухбайтного числа (0-65535) в десятичную символьную форму (в стринг с нулем на конце).
Рискну предложить вот такой вариант (внутри). Правда ведущие нули не убираются, т.е. строка всегда из пяти символов десятичных чисел + завершающий нуль.
const unsigned int bcdTbl[]={10000, 1000, 100, 10, 1};
void funcBCD (unsigned char *pStr, unsigned int val)
{ unsigned long sum=0;
unsigned int idx, flag;
unsigned char bcd;
for (idx=0; idx<5; idx++)
{ bcd='0';
flag=0;
do
{ sum+=bcdTbl[idx];
if (sum<=val)
{ bcd+=1;
}
else
{ sum-=bcdTbl[idx];
flag=1;
}
} while (flag==0);
pStr[idx]=bcd;
}
pStr[idx]=0x00;
}