2013-05-09 10 views

Antwort

16

nicht sicher, ob es "schöner" ist oder nicht ...

import ctypes 

def int32_to_uint32(i): 
    return ctypes.c_uint32(i).value 
+0

That gibt einen Integer-Typ von Python zurück, was in diesem Zusammenhang wahrscheinlich kein sinnvolles Ergebnis ist, wie es nicht mehr ein uint32 ist. Ich nehme an, es hängt davon ab, wie er es benutzt. – Cairnarvon

+0

@Cairnarvon: Für "1" und "-1" gibt die OP-Version ein "int" bzw. ein "long" zurück. Meine Version gibt ein 'long' für beide zurück. – martineau

+0

Schön! Ich würde das wahrscheinlich bevorzugen. Ist das so plattformübergreifend wie 'struct'? – Claudiu

3

mit numpy zum Beispiel:

import numpy 
result = numpy.uint32(numpy.int32(myval)) 

oder auch auf Arrays,

arr = numpy.array(range(10)) 
result = numpy.uint32(numpy.int32(arr))