2013-05-09 2 views

ответ

16

Не уверен, что если это "лучше" или нет ...

import ctypes 

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

Это возвращает целочисленный тип Python, хотя это, вероятно, не является значимым результатом в этом контексте, поскольку он больше не является uint32. Я полагаю, это зависит от того, как он его использует. – Cairnarvon

+0

@Cairnarvon: для '1' и' -1' версия OP возвращает 'int' и' long' соответственно. Моя версия возвращает 'long' для обоих. – martineau

+0

Ницца! Я бы предпочел это. Является ли это кросс-платформенным как 'struct'? – Claudiu

3

использованием NumPy, например:

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

или даже на массивах,

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