el valor más negativo para python

Espero que lo más negativo para python sea -maxint-1

Espero tener -2, haré desbordamiento de enteros.

 from sys import maxint maximum_int = maxint minimum_int = -maxint - 2 # 2147483647 # -2147483649 print maximum_int print minimum_int 

Todavía. Se muestra el resultado correcto y se muestra un valor más negativo que -maxint-1 .

¿Puedo saber por qué?

Aquí se puede ver que el resultado se promociona a un largo

 >>> from sys import maxint >>> type(-maxint)  >>> type(-maxint-1)  >>> type(-maxint-2)  >>> 

tenga en cuenta que la convención habitual para los valores firmados es tener un número negativo más que positivo, por lo que en este caso -2147483648 sigue siendo un int

En Python, int s se promocionará automáticamente a long (bigint).

Python autopromota los valores de int que se desbordan a long , lo que no tiene un límite que no sea la memoria disponible.

Python promueve un desbordamiento de int a una precisión arbitraria de largo que está limitada solo por la memoria disponible.

Puedes ver la promoción con este código:

 import struct from sys import maxint maximum_int = maxint minimum_int = -maxint-1 big_minus = -maxint-(maxint*maxint) big_plus=maxint*maxint*maxint def platform(): return struct.calcsize("P") * 8 def bit_length(x): s=bin(x) s=s.lstrip('-0b') return len(s) print print 'running in ', platform(), ' bit mode...' print 'maxint: ', maximum_int, ' bits: ', bit_length(maximum_int) print 'minint: ', minimum_int, ' bits: ', bit_length(minimum_int) print 'a big minus: ', big_minus, ' bits: ', bit_length(big_minus) print 'big_plus: ', big_plus, ' bits: ', bit_length(big_plus) print 

Ejecutando bajo Python de 32 bits, aquí está el retorno:

 running in 32 bit mode... maxint: 2147483647 bits: 31 minint: -2147483648 bits: 32 a big minus: -4611686016279904256 bits: 62 big_plus: 9903520300447984150353281023 bits: 93 

Bajo 64 bit Python:

 running in 64 bit mode... maxint: 9223372036854775807 bits: 63 minint: -9223372036854775808 bits: 64 a big minus: -85070591730234615856620279821087277056 bits: 126 big_plus: 784637716923335095224261902710254454442933591094742482943 bits: 189 

Si realmente desea el valor más negativo para python, float (‘- inf’) funciona bien.

Python implementa el concepto biging, el tipo se llama long . El tamaño es prácticamente ilimitado.