Mapping 64 bit int from C to Python-2.2

pruebauno at latinmail.com pruebauno at latinmail.com
Mon Mar 9 15:42:45 EDT 2009


On Mar 9, 11:51 am, Explore_Imagination <Mr.HassanShab... at gmail.com>
wrote:
> Hi
>
> I want to map 64 bit integers from C to python. I must use Python 2.2
> BUT There is no support for 64 bits integers in Python2.2 (Supported
> in 2.5).
>
> Now the problem is that I have these four variables:
>
> unit32_t a,b,c;
> uint64_t w,x,y,z;
>
> I use this funtion to map values:
>
> Py_BuildValue( "(lllllll)", a,b,c,w,x,y,z );
>
> As I access 32 bit values in Python it works fine BUT 64 bit intergers
> in Pythong give garbage values . I think there may be a case of
> overflow when 64 bit values in C are mapped to python.
>
> Any Suggestions?

You should be able to create PyLong objects from your 64 bit integers.
PyLong objects have unlimited integer precision. Alas I don't know
enough about the internal C code of Python to know what function to
use to do the conversion from an int64 to a PyLong object.



More information about the Python-list mailing list