2

一个 64 位的数字被msgpack解包为带符号的;我怎样才能将它重新解释为未签名?

4

2 回答 2

3

怎么样

if x < 0:
   x += 2 ** 64

或者,如果你更喜欢玩弄,

x &= 2 ** 64 - 1
于 2012-04-11T14:35:07.530 回答
2

你的意思是这样的?

>>> struct.unpack('L', struct.pack('l', -2235234523))
(18446744071474317093L,)
于 2012-04-11T14:41:03.150 回答