Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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中的i&-i?python中的位操作_Python_Bit Manipulation - Fatal编程技术网

如何理解python中的i&-i?python中的位操作

如何理解python中的i&-i?python中的位操作,python,bit-manipulation,Python,Bit Manipulation,我发现python中的“&”表示基于位表达式的“and”运算。最近,我发现了一个非常智能的代码,其中一行类似于“I&-I”,其中I是一个整数。如何理解“i&-i”的结果。此外,python如何处理位操作的负整数“-i” i&-i-清除所有位1,但最后一个有效位。 例如: i=10dec=000010bin i&-i将是00000010bin=2dec 根据数学术语,i&-i返回最大2^N,即i的除数 更多示例: i(dec) i(bin) i&-i 1

我发现python中的“&”表示基于位表达式的“and”运算。最近,我发现了一个非常智能的代码,其中一行类似于“I&-I”,其中I是一个整数。如何理解“i&-i”的结果。此外,python如何处理位操作的负整数“-i”

i&-i-清除所有位1,但最后一个有效位。 例如:

i=10dec=000010bin

i&-i将是00000010bin=2dec

根据数学术语,i&-i返回最大2^N,即i的除数

更多示例:

i(dec)   i(bin)     i&-i
 1            1        1
 5          101        1
 8         1000     1000
12         1100     0100

负数有无穷多的前导数,就像正数有无穷多的前导零一样。是的,位操作非常重要,因为这就是CPU处理数学的方式,以及。本质上是的副本,除了Python整数不是固定宽度的一点警告之外。@user2357112我在那里给出的证明也适用于左无限位字符串,因此它证明了Python类型整数的well@user2357112你知道你是天才吗?