Most performant way of converting int to string
Ivan Kazmenko via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Dec 22 10:39:16 PST 2015
On Tuesday, 22 December 2015 at 18:11:24 UTC, rumbu wrote:
> On Tuesday, 22 December 2015 at 17:15:27 UTC, Andrew Chapman
> wrote:
>> Sorry if this is a silly question but is the to! method from
>> the conv library the most efficient way of converting an
>> integer value to a string?
>>
>> e.g.
>> string s = to!string(100);
>>
>> I'm seeing a pretty dramatic slow down in my code when I use a
>> conversion like this (when looped over 10 million iterations
>> for benchmarking).
>>
>> Cheers!
>
> Converting numbers to string involves the most expensive known
> two operations : division and modulus by 10.
When the base is known in advance, division and modulus can be
substituted by a few additions, subtractions and bit shifts. For
example, the Hacker's Delight book has a chapter dedicated to
that, as well as a freely available additional chapter
(www.hackersdelight.org/divcMore.pdf).
Does DMD, or Phobos function to!(string), do anything like that?
The number of possible bases is not large anyway. I've heard
major C/C++ compilers do that, but have not looked for a proof
myself.
More information about the Digitalmars-d-learn
mailing list