gpt4 book ai didi

python - python中的 "~"和 "&="符号是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 10:37:51 24 4
gpt4 key购买 nike

我在一个python群里看到了下面的内容:

>> bookStyle = aui.AUI_NB_DEFAULT_STYLE
>> bookStyle &= ~(aui.AUI_NB_CLOSE_ON_ACTIVE_TAB)

你能解释一下第二个陈述吗? &=~ 有什么作用?

最佳答案

根据 bitwise operators documentation ,

The unary ~ (invert) operator yields the bitwise inversion of its plain or long integer argument. The bitwise inversion of x is defined as -(x+1). It only applies to integral numbers.

&=可以这样理解

bookStyle = bookStyle & ~(aui.AUI_NB_CLOSE_ON_ACTIVE_TAB)

所以,基本上,我们反转 aui.AUI_NB_CLOSE_ON_ACTIVE_TAB 的值,然后检查反转值中的所有 ON 位是否也在 bookStyle 中也为 ON。

~ 可以用这样的 32 位算法更好地理解

5 可以这样用 32 位二进制表示

print format(5 & (1 << 32) - 1, "032b")
# 00000000000000000000000000000101

现在,当我们执行 ~5 结果将是

print ~5
# -6

所以,让我们用二进制打印-6

print format(-6 & (1 << 32) - 1, "032b")
# 11111111111111111111111111111010

如果我们比较这些值,

00000000000000000000000000000101
11111111111111111111111111111010

您知道内部到底发生了什么。

关于python - python中的 "~"和 "&="符号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22482394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com