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

关于位异或运算符的疑问:为何可用于十进制数而非仅二进制?

为什么异或运算符能直接用在十进制数上?

这个问题其实戳中了很多新手容易混淆的点——人类习惯的数字表示方式和计算机实际存储、运算的底层逻辑完全是两码事!

我给你拆解一下:

  • 首先,异或确实是针对二进制位的运算,但计算机里所有整数(包括ord()返回的ASCII码值)在内存里都是以二进制形式存储的,十进制只是给人类看的“友好展示格式”而已。
  • 当你用十进制数做异或运算时,编程语言会自动帮你完成「十进制→二进制」的转换,执行位运算后,再把结果转回十进制输出,整个过程完全不需要你手动干预。

拿Python举个直观的例子:

# ord('a') 返回十进制97,它的二进制本质是 0b01100001
# 我们用它和十进制32(二进制0b00100000)做异或
xor_result = ord('a') ^ 32
print(xor_result)       # 输出65(十进制),对应二进制0b01000001
print(chr(xor_result))  # 输出'A',验证结果正确

你看,我们全程用的都是十进制数,但底层其实是二进制位在做异或操作——把两个数的对应位进行「相同为0,不同为1」的计算,最后再转成十进制给你看。

不止异或,所有位运算符(比如与&、或|、取反~、移位<</>>)都是这个逻辑:不管你输入的是十进制、八进制还是十六进制,最终都会统一转换成二进制进行位操作,结果再以默认的十进制格式返回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:57:14