我在一个python组里看到了这样的内容:
>> bookStyle = aui.AUI_NB_DEFAULT_STYLE
>> bookStyle &= ~(aui.AUI_NB_CLOSE_ON_ACTIVE_TAB)
你能解释一下第二个说法吗?做什么&=和~做什么?
根据按位运算符文档,
一元
~(反转)运算符产生其普通或长整型参数的按位反转。x 的按位反转定义为 -(x+1)。它仅适用于整数。
&=可以这样理解
bookStyle = bookStyle & ~(aui.AUI_NB_CLOSE_ON_ACTIVE_TAB)
因此,我们基本上将 的值反转,然后检查反转值中的所有 ON 位是否也都aui.AUI_NB_CLOSE_ON_ACTIVE_TAB为 ON 。bookStyle
~使用这样的 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
你就会知道内部到底发生了什么。
| 归档时间: | 
 | 
| 查看次数: | 191 次 | 
| 最近记录: |