Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 限制变量的大小_Python_Python 3.x - Fatal编程技术网

Python 限制变量的大小

Python 限制变量的大小,python,python-3.x,Python,Python 3.x,我主要从事低级编程,变量的大小受变量类型/寄存器大小的限制 假设我想用Python做几个位级操作,我需要确保当前执行的指令的高位不会影响下一条指令 在Python w/o中,是否有任何技巧可以使用额外的长二进制掩码或浪费性能的库来限制变量的大小 在示例代码中,我使用0xffffff掩码将x的值限制为32位 def reflect_bits(x): x = (((x & 0x55555555) << 1) | ((x >> 1) & 0x5555555

我主要从事低级编程,变量的大小受变量类型/寄存器大小的限制

假设我想用Python做几个位级操作,我需要确保当前执行的指令的高位不会影响下一条指令

在Python w/o中,是否有任何技巧可以使用额外的长二进制掩码或浪费性能的库来限制变量的大小

在示例代码中,我使用
0xffffff
掩码将
x
的值限制为32位

def reflect_bits(x):
   x = (((x & 0x55555555) << 1) | ((x >> 1) & 0x55555555)) & 0xFFFFFFFF
   x = (((x & 0x33333333) << 2) | ((x >> 2) & 0x33333333)) & 0xFFFFFFFF
   x = (((x & 0x0F0F0F0F) << 4) | ((x >> 4) & 0x0F0F0F0F)) & 0xFFFFFFFF
   x = ((x << 24) | ((x & 0xFF00) << 8) | ((x >> 8) & 0xFF00) | (x >> 24)) & 0xFFFFFFFF
   return x
def反射_位(x):
x=((x&0x555555>1)和0x555555))&0xFFFFFF
x=((x&0x33333333)>2)和0x33333333))&0xFFFFFF
x=((x&0x0F0F)>4)和0x0F0F))&0xFFFFFF
x=((x 8)和0xFF00)|(x>>24))和0xFFFFFF
返回x

我认为没有任何内置功能。您可以在开始时执行
x=x&0xffffffffff
,这样中间值就不会溢出。您可能会觉得有帮助。使用它,您可以在Python代码中嵌入C类型。与Python int不同,C风格的int具有预先确定的大小,因此它们在这里的行为可能更容易预测。你可能也会得到提速。