[Python] Python (long) int in cython

Pietro Battiston ml a pietrobattiston.it
Mar 3 Nov 2015 13:08:18 CET


Il giorno lun, 02/11/2015 alle 10.44 +0100, Riccardo Magliocchetti ha
scritto:
> Ciao,
> 
> Il 02/11/2015 07:19, Pietro Battiston ha scritto:
> > Salve a tutti,
> > 
> > sto traducendo del codice in cython, ed ho un problema: avrei
> > bisogno
> > di memorizzare in una variabile un intero arbitrariamente grande
> > (in
> > realtà non così immenso, ma più di 64 bit). Ho pensato "niente di
> > più
> > semplice: utilizziamo l'int Python" (o long int, sotto Python 2).
> > Ma
> > non riesco a definirlo in nessun modo sotto Cython.
> 
> Qua hai scritto che ti serve un integer più grande di 64bit. E` un
> typo? 

No, non è un typo!

> Python 
> che io ricordi usa long (quindi 32bit su arch 32bit) per gli integer
> quindi non 
> ci starebbe. Se ti bastano 64bit cosa non va in cython.longlong?
> 

Non mi bastano.

Python usa numeri di macchina finché può, poi passa automaticamente al
suo tipo "long", che è limitato solo dalla quantità di memoria:

In [1]: 10**10
Out[1]: 10000000000

In [2]: 10**20
Out[2]: 100000000000000000000L

(nota la "L" alla fine).

Io voglio utilizzare _quel_ tipo long, ma da cython (so perfettamente
che i calcoli diventano più lenti, ma mi serve solo in un caso molto
particolare - praticamente, capire quando c'è un overflow e recuperare
la situazione).

Pietro


Maggiori informazioni sulla lista Python