SpreadTooThin wrote: > Robert Kern wrote: >> [EMAIL PROTECTED] wrote: >>> To your question on casting long to short. This is how: >>> a=1234L # long >>> b=int(a) # int (short) >> No, a Python int is a C long. A Python long is an arbitrary-precision number >> and >> does not correspond to any C type. > > So there is no short(number) casting?
Not in core Python, no, since C short ints have no Python type directly corresponding to them. As John Machin pointed out, if you had tried what you proposed, it would have worked just fine. If you find that you keep needing to deal with the various C integer and floating point types (and arrays of such), you might want to consider using numpy. http://numpy.scipy.org In [15]: import numpy In [16]: a = numpy.array([65537], dtype=numpy.uint32) In [17]: a Out[17]: array([65537], dtype='uint32') In [18]: b = a.astype(numpy.uint16) In [19]: b Out[19]: array([1], dtype='uint16') In [20]: numpy.uint16(a[0]) Out[20]: 1 -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list