2013-05-09 34 views

Odpowiedz

16

Nie wiem, czy to jest "ładniejszy", czy nie ...

import ctypes 

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

Że zwraca typ liczby Pythona, co prawdopodobnie nie jest znaczącym wynikiem w tym kontekście, ponieważ w rzeczywistości nie jest to już wersja uint32. Przypuszczam, że to zależy od tego, jak go używa. – Cairnarvon

+0

@Cairnarvon: Dla '1' i' -1', wersja OP zwraca odpowiednio 'int' i' long'. Moja wersja zwraca 'long' dla obu. – martineau

+0

Nice! Prawdopodobnie wolałbym to. Czy jest to tak wieloplatformowe jak "struct"? – Claudiu

3

użyciu numpy na przykład:

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

lub nawet na tablicach,

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