2011-03-29 29 views
18

Sé en la mayoría, si no todos los lenguajes de programación, enteros, carrozas, etc. todos tienen una cantidad máxima que pueden contener, ya sea sin firmar o firmada. Por ejemplo, el tipo int de pascal solo puede contener hasta 32768 ~.Límite de número de Python

Lo que quería saber era cuál es el límite en las variables de coma flotante y en el int de python. Probé un pequeño programa para producir números extremadamente grandes, pero no encontré ningún error. ¿Tiene límites sobre cuán grandes pueden ser estas variables?

miré en la documentación y no podía encontrar lo que estaba buscando:/

ayuda sería muy apreciada, gracias!

+0

¿No pudo encontrar la información de coma flotante IEEE? http://docs.python.org/tutorial/floatingpoint.html Parece bastante claro. –

Respuesta

44

Las versiones anteriores tenían un límite en int pero se elimina ahora, por lo que puede decir que no hay límite, depende de la memoria de su computadora. Compruebe this article.

+8

Una versión de tl; dr: números enteros pequeños de Python encajan en la palabra de máquina de la plataforma (por ejemplo, 32 bits). Si un número no cabe, se promociona automáticamente a un número entero 'largo' que es el tiempo que permite su RAM. Realmente no puedes tener un desbordamiento de enteros. Si desea empacar un número preciso de bits (por ejemplo, para la interfaz con el código C), 'import struct, ctypes'. – 9000

+0

más uno para las buenas noticias: D –

-1

Este document da un buen punto de partida, como sys.float_info.

5

Véase el módulo sys:

import sys 
dir(sys) 
print sys.maxint 
help(sys.float_info) 

y así sucesivamente.

5

Solía ​​haber un límite en las versiones anteriores de Python para "int". Pero, esto se elimina ya que Python trata a "entero" como un objeto. Entonces, aunque python asigna 32 bit para el valor al que apunta la referencia de referencia, como el valor va más allá de 2^32, puede seguir subiendo hasta el tamaño de la RAM en su computadora.

Cuestiones relacionadas