I noticed that leading zeros are quite common for octal and hex
constants. This code is structured for speed, with a partially unrolled
loop structured so that it is impossible to overflow the unrolled part.
If we get to the end of the unrolled portion, and the accumulated value
is still zero, it's because there have been only leading zeroes so far,
and instead of dropping into the loop, we can re-enter the unrolled part
without having to consider the possibility of overflowing. This allows
the next chunk of digits to be processed without branching.