Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.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的字节码中_Python_Bytecode_Bitwise Or - Fatal编程技术网

按位';或';成为'+=';在python的字节码中

按位';或';成为'+=';在python的字节码中,python,bytecode,bitwise-or,Python,Bytecode,Bitwise Or,我正在阅读下面对python字节码的解释。为了提供完整的上下文,我发布了很多文章。我对按位'or'变成'+='的部分感到困惑 当解释器执行EXTENDED_ARG时,其oparg(为1)为 左移位8位并存储在临时变量中。让我们 将其称为extended_arg(不要将其与opname extended_arg混淆): 这类似于将oparg的值添加到extended_arg。所以现在我们 拥有: 该值将用作CALL_函数的实际运算量。所以 其实, 被解释为: EXTENDED_ARG 1 CALL

我正在阅读下面对python字节码的解释。为了提供完整的上下文,我发布了很多文章。我对按位'or'变成'+='的部分感到困惑

当解释器执行EXTENDED_ARG时,其oparg(为1)为 左移位8位并存储在临时变量中。让我们 将其称为extended_arg(不要将其与opname extended_arg混淆):

这类似于将oparg的值添加到extended_arg。所以现在我们 拥有:

该值将用作CALL_函数的实际运算量。所以 其实,

被解释为:

EXTENDED_ARG 1
CALL_FUNCTION 260

有人能解释一下这是怎么翻译的吗。

如果
x
y
没有共享任何设置位,那么
x | y
就相当于
x+y
如果
x
y
没有共享任何设置位,那么
x | y
就相当于
x+y
    第1步:
    1

    • 步骤1:
      1如果已知其中一个操作数为零,则
      0+bit=bit
      给出与
      0 | bit==bit
      相同的结果,其中
      bit
      0
      1
      如果已知其中一个操作数为零,然后
      0+bit=bit
      给出与
      0 | bit==bit
      相同的结果,其中
      bit
      0
      1

      共享一个设定位意味着什么?@Joemoor94
      x@JoeyMoore:将数字的二进制表示形式(填充到相同的长度)排成一行,并查找其中都有1的任何列。二进制表示法中的1是设定位。@布鲁诺我认为这突出了我的一个更深层次的无知共享一个设定位意味着什么?@Joemoor94
      x@JoeyMoore:将数字的二进制表示法(填充到相同的长度)排成一行,然后查找两个数字都有1的任何列。二进制表示法中的1是设定位。@布鲁诺我认为这突出了我对零件更深层次的无知。当前条件中的警告+与|相同,而不是+=与|=当前条件中的警告+与|相同,而不是+=与|相同|=
      
      extened_arg = 1 << 8  # same as 1 * 256
      
      extened_arg = extened_arg | 4
      # Same as extened_arg += 4
      
      extened_arg = 256 + 4 = 260
      
      EXTENDED_ARG 1
      CALL_FUNCTION 4
      
      EXTENDED_ARG 1
      CALL_FUNCTION 260