You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中按位与(&)、按位或(|)运算结果存疑,求逻辑解析

解析Python中的按位与(&)和按位或(|)运算

嘿,别困惑啦!按位运算的核心其实是把十进制数转换成二进制,然后对每一位进行对应规则的操作,咱们一个个拆解你给出的例子,看完你立马就能明白背后的逻辑~

一、按位与(&)运算:对应位全为1时结果才是1,否则为0

按位与的规则很直白:两个二进制位里,只要有一个是0,结果位就为0;只有当两个位都是1的时候,结果位才是1。

  • 例子1:22 & 1
    先把数字转成二进制:

    • 22 的二进制是 10110
    • 1 的二进制是 00001
      对齐位数后逐位运算:
    1 0 1 1 0
    & 0 0 0 0 1
    -----------
      0 0 0 0 0
    

    把结果二进制00000转成十进制就是0,和你得到的输出完全一致。

  • 例子2:22 & 21
    转二进制:

    • 22 → 10110
    • 21 → 10101
      逐位运算:
    1 0 1 1 0
    & 1 0 1 0 1
    -----------
      1 0 1 0 0
    

    二进制10100转换成十进制是20,正好是你看到的结果。

二、按位或(|)运算:对应位只要有一个是1,结果位就是1

按位或的规则是:两个二进制位里,只要有一个是1,结果位就为1;只有当两个位都是0的时候,结果位才是0。

  • 例子1:34 | 30
    转二进制:

    • 34 → 100010
    • 30 → 011110
      逐位运算:
    1 0 0 0 1 0
    | 0 1 1 1 1 0
    -------------
      1 1 1 1 1 0
    

    二进制111110转换成十进制是62,和你的输出匹配。

  • 例子2:2 | 9
    转二进制:

    • 2 → 0010
    • 9 → 1001
      逐位运算:
    0 0 1 0
    | 1 0 0 1
    ---------
      1 0 1 1
    

    二进制1011转换成十进制是11,完全符合你得到的结果。

其实只要把十进制转成二进制,按照规则逐位计算,就能轻松搞懂这些运算啦~

内容的提问来源于stack exchange,提问作者subhanshu kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:24:14