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

迁移C#至Python时对XOR(^)位运算逻辑的疑问

理解XOR(^)位运算的计算过程

首先明确XOR(按位异或)的核心规则:两个二进制位相同则结果为0,不同则结果为1,计算时会把两个数转换成二进制,逐位对比后得到结果,再转回十进制。

先看你疑惑的210 ^ 224 = 50的具体计算步骤:

  1. 把两个数转成8位二进制:
    • 210 = 128 + 64 + 16 + 2 → 二进制 11010010
    • 224 = 128 + 64 + 32 → 二进制 11100000
  2. 逐位异或对比:
    1 1 0 1 0 0 1 0
    ^ 1 1 1 0 0 0 0 0
    -------------------
      0 0 1 1 0 0 1 0
    
  3. 把结果二进制转十进制:32 + 16 + 2 = 50,这就是你得到的结果。

再把整个循环的每一步拆解清楚,对应你给出的取值序列:

  • 初始值:item_verif = 3(二进制00000011)
  • 第一步(^1):3 ^ 1 = 2 → 00000011 ^ 00000001 = 00000010(十进制2)
  • 第二步(^2):2 ^ 2 = 0 → 00000010 ^ 00000010 = 00000000(十进制0)
  • 第三步(^210):0 ^ 210 = 210 → 0和任何数异或都等于原数
  • 第四步(^224):就是上面计算的结果50
  • 第五步(^97):50 ^ 97 = 83
    • 50二进制:00110010,97二进制:01100001
    • 异或后:01010011 → 64 + 16 + 2 + 1 = 83

你的Python代码逻辑和C#完全一致,因为两者的XOR位运算规则是完全相同的,都是基于整数的二进制位操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:50:29