XOR计算器:异或逻辑与位运算
计算布尔值、二进制序列和十进制整数的异或,并提供逐步说明与真值表。
选择运算类型,输入两个值,然后点击计算即可查看 XOR 结果,还可选显示真值表和步骤拆解。
XOR计算器:异或逻辑与位运算
计算布尔值、二进制序列和十进制整数的异或,并提供逐步说明与真值表。
对两个布尔值(0/1 或 true/false)执行 XOR。仅当两个输入中恰好一个为 true 时返回 true。
关于 XOR 计算器
XOR 是 Exclusive OR(异或)的缩写,是布尔代数和数字电子学中的基础逻辑运算之一。它不同于普通 OR:OR 在至少一个输入为 true 时返回 true,而 XOR 只有在两个输入中恰好一个为 true 时才返回 true——当两者都为 true 或都为 false 时都返回 false。这种“排他”特性让 XOR 在计算和数学中的许多场景里都非常有价值。
在最基本的层面上,布尔 XOR 就是一种二元逻辑门。给它两个输入——每个输入都是 0(false)或 1(true)——只有当两个输入不同的时候输出才是 1。完整真值表为:0 XOR 0 = 0,0 XOR 1 = 1,1 XOR 0 = 1,1 XOR 1 = 0。它与“二选一,但不能两者兼有”这一说法完全一致。日常语言里,“我要蛋糕或派(但不能两个都要)”就是一个 XOR 命题。
二进制 XOR 将布尔情况扩展到整个比特串。两个输入序列中对应位置的每一对比特都会独立执行 XOR,从而生成输出比特。例如,1010 XOR 1100 = 0110,因为第一位(1 和 1)得到 0,第二位(0 和 1)得到 1,第三位(1 和 0)得到 1,第四位(0 和 0)得到 0。这个运算在数字通信中的差错检测、RAID 存储系统中的校验计算,以及密码学中的流密码设计里都非常重要。
按位 XOR 会同时作用于十进制整数的完整二进制表示。现代处理器把按位 XOR 作为单周期指令实现,因此速度极快。程序员会把按位 XOR 用在很多巧妙技巧里:不用临时变量交换两个整数(a ^= b; b ^= a; a ^= b;)、切换位掩码中的特定位、找出数组中唯一不重复的数字,以及计算校验和。a XOR a = 0(任何值与自身 XOR 都等于 0)和 a XOR 0 = a(任何值与 0 XOR 仍是自身)这两个性质支撑了许多应用。
在密码学中,XOR 是一次一密的核心——当密钥真正随机且只使用一次时,它是唯一可证明不可破译的加密方案。消息的每一位都会与密钥中对应的一位进行 XOR。解密过程完全相同:把密文再与同一个密钥 XOR 一次,就能恢复原文。这之所以成立,是因为 XOR 是它自己的逆运算:(a XOR k) XOR k = a。流密码以及 CTR、OFB 等分组密码工作模式都利用了这个性质,把分组密码转变为基于密钥流的系统。
这个 XOR 计算器把布尔、二进制和按位三种变体集中在一起。输入数值,选择适合的运算模式,还可以按需启用真值表或逐步说明,清楚了解结果是如何得出的。
XOR 计算器示例
展示布尔、二进制和按位模式下常见的 XOR 运算及其实际值。
| 输入 | 结果 | 说明 |
|---|---|---|
| 布尔:true XOR false | true | 输入不同,所以 XOR 返回 true。1 XOR 0 = 1。 |
| 布尔:true XOR true | false | 两个输入相同,所以 XOR 返回 false。1 XOR 1 = 0。 |
| 二进制:1010 XOR 1100 | 0110 | 逐位 XOR:1^1=0,0^1=1,1^0=1,0^0=0。结果是 0110(十进制 6)。 |
| 按位:12 XOR 10 | 6 | 12 的二进制是 1100,10 的二进制是 1010。XOR 得到 0110 = 十进制 6。 |
如何使用 XOR 计算器
- 选择运算类型:布尔用于 true/false,二进制用于位序列,按位用于十进制整数。
- 输入第一个值(A),格式要对应所选类型:布尔使用 0/1/true/false,二进制使用类似 1010 的位串,按位使用十进制整数。
- 以与第一个值相同的格式输入第二个值(B)。
- 可选开启“显示真值表”查看四种输入组合,或开启“显示步骤”查看逐位 XOR 推导。
- 点击“计算 XOR”即可得到结果。点击“重置”可清空所有字段并重新开始。
XOR 计算器常见问题
XOR 是什么意思?
XOR 是 Exclusive OR(排他或、异或)的缩写。它是一种逻辑运算:当两个输入中恰好一个为 true 时返回 true(1),当两个输入相同的时候返回 false(0)。“排他”一词区别于普通 OR,因为普通 OR 在两个输入都为 true 时也会返回 true。
XOR 和 OR 有什么不同?
普通 OR 只要有一个输入为 true,或者两个都为 true,就会返回 true。XOR 只有在一个输入为 true、另一个为 false 时才返回 true——它排除了两个都为 true 的情况。0 OR 0 = 0 和 1 OR 1 = 1 这两行真值表是相同的;差异出现在 1 XOR 1 = 0,而 1 OR 1 = 1。
为什么 XOR 在密码学中很重要?
XOR 是它自己的逆运算:(a XOR k) XOR k = a,对任意 a 和 k 都成立。这意味着你可以用密钥进行 XOR 来加密,再用同一个密钥 XOR 一次来解密。一次一密是唯一可证明不可破解的密码体制,而它完全基于 XOR。流密码和许多分组密码工作模式也依赖 XOR 来把密钥材料与明文混合。
如何对不同长度的二进制数执行 XOR?
先在较短的序列左侧补零,直到两边长度相同,然后逐位 XOR 每一对比特。例如,110 XOR 1010 会变成 0110 XOR 1010 = 1100。这个计算器会自动完成补零。
按位 XOR 在编程中的实际用途是什么?
按位 XOR 常用于不用临时变量交换两个变量:a ^= b; b ^= a; a ^= b;。它还可用于切换标志位、找出数组中唯一不重复的元素(把所有元素 XOR 在一起;成对的值会抵消为 0),以及快速计算校验和和哈希混合。
XOR 可以作用于两个以上的输入吗?
可以。多输入 XOR 其实就是依次进行两两 XOR。只要 1 的个数是奇数,结果就为 1(true);如果 1 的个数是偶数,结果就为 0(false)。RAID-5 的校验计算就使用了这一性质,多块数据盘的校验位就是它们全部内容的 XOR。