rather odd ... your new numbers say that all three versions are
basically the same.
It may be related to the processor architecture (your first tests were
on a Intel(R) Celeron(R) CPU 2.20GHz).
A test on that machine would say more about this.

William A. Rowe, Jr. wrote:

> nope - the proposed change is a bit more expensive.  (magnitude % 10 in
> any case being the unavoidably most expensive bit.)


On x86 the div instruction calculates both the reminder and the quotient
in the same op.
A good compiler may optimize these:
    *--p = digits[magnitude % 10];
     ((magnitude /= 10) != 0);
into a single div instruction (see
http://www.cs.tut.fi/~siponen/upros/intel/instr/div.html )

I'm not so sure about other processor architectures, but if all
processors support such a feature, the third method
may be faster than the first two (in combination with a good compiler).

If not, the original version, with a (magnitude*10), is better.

Anyways, it's not a critical function, in a tight loop somewhere :)


-- 
Best regards,

Lucian Adrian Grijincu
Software Developer
Avira Soft srl

[EMAIL PROTECTED]
http://www.avira.com


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to