Как преобразовать 32-разрядный int со знаком в 32-разрядный int без знака?
это то, что у меня есть, в настоящее время. Есть ли лучший способ сделать это?
import struct
def int32_to_uint32(i):
return struct.unpack_from("I", struct.pack("i", i))[0]
2 ответов
Не уверен, что это "лучше" или нет...
import ctypes
def int32_to_uint32(i):
return ctypes.c_uint32(i).value
использование numpy, например:
import numpy
result = numpy.uint32( numpy.int32(myval) )
или даже на массивах,
arr = numpy.array(range(10))
result = numpy.uint32( numpy.int32(arr) )