对于python来说是相当新的东西,似乎被卡住了,我有以下内容:

我从比特流中读取了30位:

MMSI = b.readlist('uint:30')


除非值变得更高,否则这似乎正常工作。

MMSI = b.readlist('uint:30')
p = 972128254
# repr(MMSI)[:-1]
print p
print "MMSI :"
print MMSI
if MMSI == p:


上面的代码输出:

972128254
MMSI :
[972128254L]


MMSI == p:的整体由于某种原因不相等而被跳过。
我不明白为什么该值远低于max.int:

>>> import sys
>>> sys.maxint
2147483647


我不明白为什么我会得到Long而不是uint?
如果返回的值为244123456,则它就像一个超级按钮一样工作。

我在这里想念什么?

谢谢,

粗暴的

最佳答案

2147483647是maxint,但是int是32位,而您使用的是30位。因此,您的上限是上限的1/4,即约5亿。

09-16 00:02