Это то, что у меня есть, в настоящее время. Есть ли лучший способ сделать это?Как конвертировать подписанные 32-битные int в беззнаковые 32-битные int?
import struct
def int32_to_uint32(i):
return struct.unpack_from("I", struct.pack("i", i))[0]
Это возвращает целочисленный тип Python, хотя это, вероятно, не является значимым результатом в этом контексте, поскольку он больше не является uint32. Я полагаю, это зависит от того, как он его использует. – Cairnarvon
@Cairnarvon: для '1' и' -1' версия OP возвращает 'int' и' long' соответственно. Моя версия возвращает 'long' для обоих. – martineau
Ницца! Я бы предпочел это. Является ли это кросс-платформенным как 'struct'? – Claudiu