8
這就是我目前所擁有的。有沒有更好的方法來做到這一點?如何將有符號的32位int轉換爲無符號的32位int?
import struct
def int32_to_uint32(i):
return struct.unpack_from("I", struct.pack("i", i))[0]
這就是我目前所擁有的。有沒有更好的方法來做到這一點?如何將有符號的32位int轉換爲無符號的32位int?
import struct
def int32_to_uint32(i):
return struct.unpack_from("I", struct.pack("i", i))[0]
不知道這是否是 「更好」 或不...例如使用numpy的
import ctypes
def int32_to_uint32(i):
return ctypes.c_uint32(i).value
:
import numpy
result = numpy.uint32(numpy.int32(myval))
甚至陣列上,
arr = numpy.array(range(10))
result = numpy.uint32(numpy.int32(arr))
那返回一個Python整數類型,雖然這在這種情況下可能不是一個有意義的結果,因爲它實際上不再是uint32了。我想這取決於他如何使用它。 – Cairnarvon 2013-05-09 01:50:17
@Cairnarvon:對於'1'和'-1',OP的版本分別返回一個'int'和一個'long'。我的版本爲兩者返回一個「長」。 – martineau 2013-05-09 03:47:41
不錯!我可能會更喜歡這個。這是與'struct'的跨平臺嗎? – Claudiu 2013-05-09 14:53:27