三谷さんこんばんわ 返事遅くなりすみません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); }