ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
116497 Топик полностью
il-2 (23.03.2008 12:10, просмотров: 101) ответил Ксения на Преобразование двухбайтного числа (0-65535) в десятичную символьную форму (в стринг с нулем на конце).
Ничего особо сложного в этом нет. Вот работающие процедурки, пользуйтесь на здоровье.  //Массив с весами десятичных разрядов flash uint CMisc::ifDecimalTableMISC[5]={ 10000, 1000, 100, 10, 1}; //Вывод числа в десятичной системе //iNumber - выводимое число (беззнаковое) //cLimit - макс кол-во выводимых символов //Возвращаемое значение - сколко еще осталось невыведенных символов func uchar CMisc::UintToStrMISC(uchar *cpStrPtr, uint iNumber, uchar cLimit) { uchar cDigPos=0; uchar cNullFlag=0; do { if ( cLimit==0 ) break; uchar cDigSym='0'; uint iDigWeight=ifDecimalTableMISC[cDigPos]; ++cDigPos; while(iNumber>=iDigWeight) { iNumber-=iDigWeight; ++cDigSym; } if ( cDigSym!='0' ) { cNullFlag=1; *cpStrPtr=cDigSym; ++cpStrPtr; --cLimit; } else if ( (cNullFlag)||(cDigPos==5) ) { *cpStrPtr=cDigSym; ++cpStrPtr; --cLimit; } } while( cDigPos != 5 ); *cpStrPtr=0; return(cLimit); } //Вывод числа в десятичной системе //iNumber - выводимое число (знаковое) //cLimit - макс кол-во выводимых символов //Возвращаемое значение - сколко еще осталось невыведенных символов func uchar CMisc::SintToStrMISC(uchar *cpStrPtr, int iNumber, uchar cLimit) { if ( cLimit==0 ) { *cpStrPtr=0; return(0); } if (iNumber<0) { iNumber=-iNumber; *cpStrPtr='-'; ++cpStrPtr; --cLimit; } else { *cpStrPtr=' '; ++cpStrPtr; --cLimit; } return( UintToStrMISC(cpStrPtr, iNumber, cLimit) ); }