三谷さんこんばんわ
返事遅くなりすみませんm(_ _)m
int→intと書きましたがよくよく考えればBCD化すると
5桁必要だからint Bには入りませんね
Bを配列にして最終的に下記のようにしました
かなり不細工な書き方ですがとりあえず動いているようです(-.-;)y-~~~
基本的な作業は同じですね
どうもわざわざありがとうございました
今後ともよろしくお願いしますm(_ _)m
void main(void)
{
unsigned int A; //BIN値格納
unsigned char B[5]; //AのBCD値を桁毎に格納
・
・
・
my_itoa(B , A);
・
・
・
}
unsigned char *my_itoa(unsigned char chBuf[] , unsigned int nNum )
//
// nNum->chBuf
// chBuf
//
{
unsigned int n;
unsigned int nIndex = 0;
// 10000 の桁
n = nNum / 10000;
if ( n != 0){
chBuf[nIndex] = (unsigned char)('0' + n);
nIndex++;
}
nNum -= n * 10000;
// 1000 の桁
n = nNum / 1000;
if ( n != 0){
chBuf[nIndex] = (unsigned char)('0' + n);
nIndex++;
}
nNum -= n * 1000;
// 100 の桁
n = nNum / 100;
// if ( n != 0){
chBuf[nIndex] = (unsigned char)('0' + n);
nIndex++;
// }
// 10 の桁
nNum -= n * 100;
n = nNum / 10;
// if ( n != 0){
chBuf[nIndex] = (unsigned char)('0' + n);
nIndex++;
// }
// 1 の桁
nNum -= n * 10;
chBuf[nIndex++] = nNum;
// num arg
// chBuf[nIndex] = 0;
return(chBuf);
}