gpt4 book ai didi

Python 就地补码运算符

转载 作者:行者123 更新时间:2023-11-28 21:56:44 24 4
gpt4 key购买 nike

Python 具有常用的位运算符,如 ~&| 等,以及就地运算符,如 + =&= 等来简化表达式,例如:

a = a & 34234
a = a + 577

收件人:

a &= 34234
a += 577

尽管补码运算符 ~ 是一元函数,并且不遵循相同的结构,因为它不与两个值一起使用(如 a34234 ), 像这样的表达式可以用另一种类型的运算符简化吗?

a = ~a # not bad at all

# Still easy to code but seems redundant
self.container.longVariableName.longName = ~self.container.longVariableName.longName

最佳答案

它非常晦涩难懂,但是:

self.container.longVariableName.longName ^= -1

可以完成这项工作,只要您处理的值是整数。 “是整数”是必需的,以便在 ~^ 运算符之间存在可利用的数学关系。

为什么有效:

  1. 按位补码与对 1 位的无限字符串进行异或运算相同。
  2. Python 保持整数使用无限宽度的 2 的补码表示的错觉,因此 -1"is"无限的 1 位字符串。

关于Python 就地补码运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20916404/

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