通过MCP连接 →

输入计算

数学公式

广告

结果

按位异或 (A ^ B)
240
十进制
A 的二进制 11111111
B 的二进制 1111
异或结果(二进制) 11110000
异或结果(十六进制) 0xF0

什么是按位异或(XOR)计算器?

按位异或(XOR,又称"异或"或"排他或")计算器会把两个整数逐位进行比较运算。对于每一个二进制位,当两个输入位不同时输出 1,当两个位相同时输出 0。异或是编程、数字逻辑、密码学和差错检测中最基础的运算之一。

如何使用

输入第一个整数(A)和第二个整数(B),然后提交即可。计算器会返回十进制的异或结果,同时给出对应的二进制和十六进制表示,方便你逐位核对。正整数和负整数都支持。

公式详解

在大多数编程语言中,异或写作 A ^ B,在数学符号中写作 $$\text{Result} = \text{A} \oplus \text{B}$$ 单个二进制位的真值表为:\(0 \oplus 0 = 0\),\(0 \oplus 1 = 1\),\(1 \oplus 0 = 1\),\(1 \oplus 1 = 0\)。这一运算会独立作用于每一对二进制位。两个非常实用的性质:A ^ A = 0A ^ 0 = A——这也正是异或常被用来交换变量值、切换标志位的原因。

XOR 真值表,显示 0 XOR 0 = 0、0 XOR 1 = 1、1 XOR 0 = 1、1 XOR 1 = 0
仅当两个输入位不同时,XOR 才输出 1。

实例演示

设 A = 12,B = 10。换算成二进制,12 = 1100,10 = 1010。逐列比较:\(1 \oplus 1 = 0\),\(1 \oplus 0 = 1\),\(0 \oplus 1 = 1\),\(0 \oplus 0 = 0\),结果为 0110 = 6。所以 $$12 \oplus 10 = 6$$

两个二进制数上下排列,每个位列通过 XOR 组合生成结果行
XOR 对每个对齐的位独立运算。

按位运算比较

每个按位运算一次处理一位。对于每对输入位 \(A\) 和 \(B\),运算产生单个输出位。下表显示了六种最常见运算的完整单位真值表。XOR(异或,记为 \(A \oplus B\))仅当两个输入位不同时输出 1。

A B AND (A&B) OR (A|B) XOR (A^B) NAND ~(A&B) NOR ~(A|B) XNOR ~(A^B)
0 0 0 0 0 1 1 1
0 1 0 1 1 1 0 0
1 0 0 1 1 1 0 0
1 1 1 1 0 0 0 1

注意 XOR 是 XNOR 的精确补集,并且 XOR 在输入不同的两行中恰好等于 1。这种"差异检测器"特性使 XOR 对奇偶校验、简单加密和位翻转非常有用。

常见输入对的 XOR 运算

下表通过按位 XOR 运算处理几个代表性对,显示每个操作数的二进制形式,然后以十进制、二进制和十六进制显示结果。XOR 逐位执行:对齐两个二进制数,在位不同的地方输出 1。

A B A(二进制) B(二进制) A ^ B(十进制) A ^ B(二进制) A ^ B(十六进制)
5 3 0101 0011 6 0110 0x6
255 15 11111111 00001111 240 11110000 0xF0
12 12 1100 1100 0 0000 0x0
7 0 0111 0000 7 0111 0x7
10 6 1010 0110 12 1100 0xC
-1 1 …11111111 …00000001 -2 …11111110 0x…FE

有两个模式脱颖而出。当操作数为 0 时,XOR 返回另一个操作数不变(\(7 \oplus 0 = 7\))。当两个操作数相同时,XOR 返回 0(\(12 \oplus 12 = 0\))。负数示例使用二进制补码表示:\(-1\) 是全 1 位,所以将其与任何值进行 XOR 运算会翻转每一位(这等价于按位 NOT),得到 \(-1 \oplus 1 = -2\)。

常见问题

XOR 是什么意思?即"排他或"(异或)——只有当两个输入中恰好有一个为真(1)时,结果才为真。

为什么密码学中要用异或?因为用密钥对数据做异或运算是可逆的:再用同一个密钥异或一次就能还原出原始数据(\(A \oplus K \oplus K = A\))。

支持负数吗?支持。负数采用补码(two's complement)表示,因此负数的二进制显示可能会包含很多位。

最后更新: