ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
116486 Топик полностью
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; }