0
我發現'&'在python意味着'和'基於位表達式的操作。最近,我發現了一個非常聰明的代碼,其中一行就像'i & -i',其中i是一個整數。如何理解'i & -i'的結果。另外,python如何處理用於位操作的負整數'-i'?如何在Python中理解i&-i?在Python中的位操作
我發現'&'在python意味着'和'基於位表達式的操作。最近,我發現了一個非常聰明的代碼,其中一行就像'i & -i',其中i是一個整數。如何理解'i & -i'的結果。另外,python如何處理用於位操作的負整數'-i'?如何在Python中理解i&-i?在Python中的位操作
「i & -i」 - 這是清除所有位「1」,但最後一個重要的一個。 例如:
I = 10(十進制)= 000010 0(BIN)
我& -i將000000 0(箱)= 2(分解)
按數學術語,「i & -i」返回最大2^N,它是「i」的分隔符。
更多的例子:
i(dec) i(bin) i&-i
1 1 1
5 101 1
8 1000 1000
12 1100 0100
負數是在[補](https://en.wikipedia.org/wiki/Two's_complement)與領先者無限多的(就像正數有無數的前導零)。 – Kevin
是的,位操作非常重要,因爲這就是你的CPU做數學的方式! [非常有趣的閱讀](https://graphics.stanford.edu/~seander/bithacks.html)以及[this](https://www.hackerearth.com/practice/notes/bit-manipulation/) 。 – ForceBru
本質上是http://stackoverflow.com/questions/41969429/why-the-bit-operation-i-i-equals-to-rightmost-bit的副本,除了Python整數不是固定寬度的輕微警告外。 – user2357112