data na seriak v C pro jednocip

Petr Simek psimek@jcu.cz
Středa Květen 5 11:13:43 CEST 2004


On Wed, 5 May 2004, radek kasal wrote:

> Ahoj
> Doporučíte jak napsat v C rozložení čtyřznakového čísla tak aby to bylo
> jednoduché a rychlé? První potřebuji tisíce, pak stovky, desítky a na
> závěr jednotky.

> Příklad: cislo = 1234

> Ja ale potřebuji dostat cislo = 1, nasledne 2, 3, 4

pokud se chcete vyhnout deleni a staci vam jen odcitani a scitani,
pak by to mohlo vypdata nejak takhle :

unsigned int ConvBin2BCD(unsigned int BinInt){  // Konvertuje int (max 9999) z bin do BCD
  unsigned int BCDInt = 0;
  while(BinInt > 999){ BinInt -= 1000;  BCDInt += 0x1000; }
  while(BinInt > 99){ BinInt -= 100;  BCDInt += 0x0100; }
  while(BinInt > 9){ BinInt -= 10;  BCDInt += 0x0010; }
  BCDInt += BinInt;
  return(BCDInt);
  }

s tim ze vystupni cislice jsou jako BCD v pulbajtech uint.

>  Radek

*------------------------------------------------------------------------*
|                          Petr Simek   APS JU                           |
|                             psimek@jcu.cz                              |
*------------------------------------------------------------------------*




Další informace o konferenci Hw-list