Jestli Ti to stačí v C, tak by to mohlo být nějak takhle :
[code]unsigned char BCD[4];
long int PrevadeneCislo;
void PrevodDoBCD(unsigned char *Vystup, long int Vstup)
{
unsigned char Cislice;
Cislice = Vstup / 10000000;
Vstup -= (long int)Cislice10000000;
Vystup[0]=(Cislice<<4);
Cislice = Vstup / 1000000;
Vstup -= (long int)Cislice1000000;
Vystup[0]+=Cislice;
Cislice = Vstup / 100000;
Vstup -= (long int)Cislice100000;
Vystup[1]=(Cislice<<4);
Cislice = Vstup / 10000;
Vstup -= (long int)Cislice10000;
Vystup[1]+=Cislice;
Cislice = Vstup / 1000;
Vstup -= (long int)Cislice1000;
Vystup[2]=(Cislice<<4);
Cislice = Vstup / 100;
Vstup -= (long int)Cislice100;
Vystup[2]+=Cislice;
Cislice = Vstup / 10;
Vstup -= (long int)Cislice*10;
Vystup[3]=(Cislice<<4);
Vystup[3]+=Vstup;
}[/code]
Volání je pak :
PrevodDoBCD(BCD, PrevadeneCislo);
Asi budeš muset přihodit nějaký to přetypování, ale jinak by to mělo chodit.