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

XOR校验和计算疑问:23、12、31异或结果为何是31?

为什么23、12、31的XOR结果是31?

首先,咱们得明确:XOR是按位异或运算,规则你已经懂了——对应位一个0一个1时结果为1,否则为0。而且XOR满足结合律,所以不管运算顺序如何,结果都是一致的。

不过先帮你把这三个数转成二进制(统一用5位,因为31的二进制是11111,刚好5位):

  • 23 → 10111
  • 12 → 01100
  • 31 → 11111

咱们一步步算:

  1. 先算23 XOR 12:
    逐位对比运算:
    1 vs 0 → 1
    0 vs 1 → 1
    1 vs 1 → 0
    1 vs 0 → 1
    1 vs 0 → 1
    结果是11011,也就是十进制的27。

  2. 再用27 XOR 31:
    11011 vs 11111
    逐位对比运算:
    1 vs 1 → 0
    1 vs 1 → 0
    0 vs 1 → 1
    1 vs 1 → 0
    1 vs 1 → 0
    结果是00100,也就是十进制的4。

所以按标准XOR运算,23、12、31的结果应该是4,而不是31。那为什么你得到的结果是31呢?可能有这几种情况:

  • 你是不是把XOR(异或)和OR(按位或)搞混了?OR的规则是只要对应位有一个1,结果就是1。23 | 12 | 31的话,23|12就等于11111(31),再和31做OR运算结果还是31。
  • 是不是输入的数值有误?比如把其中一个数换成了和另一个数相同的,比如31、12、12,那31 XOR 12 XOR 12=31(因为a XOR a = 0,0 XOR b = b)。
  • 是不是运算工具或者输入时出了问题?可以再手动算一遍或者用计算器验证下。

如果还有其他细节可以补充,咱们再进一步分析!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:19:55