我有一个由各种位字段组成的64位数字,我正在编写一个简单的python实用程序来解析这个数字。我面临的问题是,低32位由一个字段组成,使用一些位移位或位屏蔽的组合并不能仅给出32位。在
big_num = 0xFFFFFFFFFFFFFFFF
some_field = (big_num & 0x00FFFF0000000000) # works as expected
field_i_need = big_num & 0x00000000FFFFFFFF # doesn't work
结果是field_i_need
等于big_num
,而不是低32位。在
我错过了一些简单的事情吗?在
谢谢!在
马修
你需要使用长整数。在
它似乎有用,否则我就错过了问题。无论如何,我使用的是python2.6.1。在
为了你的信息,我前段时间问了一个有点相关的question。在
在这里,我注意到我遗漏了一条信息,我使用的是python2.2.3版本。我设法在另一台带有2.5.1版本的机器上进行了测试,一切都如预期的那样工作。不幸的是我需要使用旧版本。在
不管怎样,谢谢你们的回复。附加'L'似乎能起到作用,而且这是一次性的,所以我对这种方法感到很舒服。在
谢谢
马修
相关问题 更多 >
编程相关推荐