嗨朋友我是Python语言的新手。我正在尝试编写一些我希望稍后在我的python模块中集成的小代码。这是我的问题
我在文件中有一个类似a[31:0]= 0X00010001
的数字,我希望根据位置获取位值,并根据其位值执行操作。
我希望使用像普通类这样的东西,如果一个数字超过32位,我也在寻找解决方案。
0x00010001.getbit(0) == 0
做一些操作。如果bit0为0,则期望进行操作。
我正在寻找是否有相应的掩码位如何根据掩码位获取值
在这种情况下0x00010001
bit[15]
是掩码,bit[0]
是值。
感谢帮助。
我尝试过比特流模块,但没有成功
答案 0 :(得分:5)
对于第一个问题:
def getbit(x,n):
"Get the n-th bit of the number x"
return x & (1 << n) and 1 or 0
说明:x & (1 << n)
表示x
和2^n
之间的按位AND。
表达式P and 1 or 0
表示:如果P
则返回1,否则返回0。
这适用于任何大小的数字。 Python并不限制你使用32位整数。