Christos said:
On 23 Sep 2003 18:04:33 -0700, rumours say that (e-mail address removed)
(mensanator) might have written:
[snipped]
But if I want to know how many digits 2**64 has, I can't
just do
If only math.log(2**64)/math.log(10) worked with longs without
converting them into floats first...
I'm not sure how you'd compute log on integer numbers. Anyway,
if you're in a hurry to know the number of digits in 2**64 -- I
see math.log(x,10) taking about 4 usec per loop, len(str(x)) about
6.3, in each case with x=2*64 and measuring with timeit.py
(elapsed time, as I'm measuring on Linux).
gmpy.numdigits(x) repeatably takes a bit less than 2 usec per loop;
if you're interested in speedy computations with "multi-precision"
values (integers, rationals, OR floats), you could do worse than
looking into gmpy (plug, plug;-).
(Note: all times measured on my old Athlon -- I did choose an Ahtlon,
back about 30 months ago, exactly because I had seen benchmarks where
it outperformed Intel CPU's by a mile on multi-precision integral
computations, particularly with the GMP library...).
Alex