整数 (最大値は 99999999 に達する可能性があります) を BCD に変換し、4 文字の配列に格納したいと考えています。例: 入力: 12345 (整数) 出力は、4 文字の配列に格納されている BCD で = "00012345" である必要があります。ここ0x00 0x01 0x23 0x45
では BCD 形式で保存されます。以下の方法で試しましたが、うまくいきませんでした
int decNum = 12345;
long aux;
aux = (long)decNum;
cout<<" aux = "<<aux<<endl;
char* str = (char*)& aux;
char output[4];
int len = 0;
int i = 3;
while (len < 8)
{
cout <<"str: " << len << " " << (int)str[len] << endl;
unsigned char temp = str[len]%10;
len++;
cout <<"str: " << len << " " << (int)str[len] << endl;
output[i] = ((str[len]) << 4) | temp;
i--;
len++;
}
どんな助けでも大歓迎です