>Scott Dattalo wrote: >> Everyone knows a cat has 9 lives. We have used three >> on this problem, so there are probably six more solutions >> lurking out there. > If you're willing to call a 16x16 bit multiply subroutine you can replace constant division with reciprocal multiplication. Using C for this example: typedef unsigned short UINT16; typedef unsigned long UINT32; // // 16-bit divide by 10 without division. // UINT16 DivideBy10 ( UINT16 Dividend ) { UINT16 Quotient; UINT32 Temp; Temp = (UINT32) Dividend; Temp = (Temp * 52429) >> 19; Quotient = (UINT16) Temp; return Quotient; >} This technique is used by high-performance compilers since a multiplication and a shift is almost always faster than a division. Tom