3   Números grandes

Podemos explorar los enteros largos de Python si hacemos una tabla de potencias de 2, evaluando 2^n mientras n varía de 0 a n.

>>> for n in range(60): 
        print n, 2**n

El resultado será:

0 1 
1 2 
2 4 
3 8 
4 16 
5 32 
6 64 
7 128 
8 256 
9 512 
10 1024 
11 2048 
12 4096 
13 8192 
14 16384 
15 32768 
16 65536 
17 131072 
18 262144 
19 524288 
20 1048576 
21 2097152 
22 4194304 
23 8388608 
24 16777216 
25 33554432 
26 67108864 
27 134217728 
28 268435456 
29 536870912 
30 1073741824 
31 2147483648 
32 4294967296 
33 8589934592 
34 17179869184 
35 34359738368 
36 68719476736 
37 137438953472 
38 274877906944 
39 549755813888 
40 1099511627776 
41 2199023255552 
42 4398046511104 
43 8796093022208 
44 17592186044416 
45 35184372088832 
46 70368744177664 
47 140737488355328 
48 281474976710656 
49 562949953421312 
50 1125899906842624 
51 2251799813685248 
52 4503599627370496 
53 9007199254740992 
54 18014398509481984 
55 36028797018963968 
56 72057594037927936 
57 144115188075855872 
58 288230376151711744 
59 576460752303423488

Nota: desde la versión 2.2 de Python, si el resultado de una expresión entera excede el límite de los enteros (2^32 generalmente), éste es convertido automáticamente a entero largo. (mostrado con terminación L en el ambiente interactivo):

>>> 12345678901234 
12345678901234L

En versiones 2.1 y anteriores tendremos un error:

>>> 12345678901234 
OverflowError: integer literal too large

En el ejemplo anterior, lo que tendremos que hacer en este caso es agregar L al final del 2:

>>> for n in range(60): 
        print n, 2L{*}{*}n

agregando-las-comas [1]3.1   Agregando las comasagregando-las-comas


Subsections