>>840
>16進数から10進数に変換する
こーゆー事だと思ったのだが、違うのか?

void toBCD(long iHex,char* pResult,int len){
  while(len--){
    char d = iHex % 10;
    iHex /= 10;
    d += iHex % 10;
    iHex /= 10;
    *pResult++ = d;
  }
}